PDA

View Full Version : کمک در طراحی یک بانک اطلاعاتی



morteza_bn
پنج شنبه 24 شهریور 1390, 11:19 صبح
سلام
من باید برای یک برنامه اداری بانکی طراحی کنم این برنامه بدین شکل هست که گروههای مختلفی ثبت میشه به طوری که ممکنه هر گروه زیر گروه یک گروه دیگه باشه و شکل این گروههاا بصور یک درخت چند سطحی هستش
ممکنه عمق این درخت حتی به 30 سطح هم برسه!
حالا میخوام رکوردهایی که در این گروهها ثبت میشه رو طوری ذخیره کنیم که مثلا مشخص باشه این رکورد در کدام گروه هست و گروههای بالا دستش چه گروه هایی هستن

بذارید یه مثال هم بزنم
تقریبا شبیه به ذخیره سازی شهر ها و روستاهاست

که مثلا هر روستا زیر مجموعه کدوم شهر هست...اون شهر زیر مجموعه کدوم استان و همینطور الی آخر....
حالا به نظرتون شیوه طراحی این بانک به چه صورت باشه...؟

Galawij
پنج شنبه 24 شهریور 1390, 11:50 صبح
یک جدول با سه فیلد:
کلید اصلی جدول، نام شیء،کلید خارجی(این کلید خارجی از کلید اصلی همین جدول ورودی می گیرد) و در صورت نیاز سایر فیلدها.

یوسف زالی
پنج شنبه 24 شهریور 1390, 22:44 عصر
سلام.
برای طراحی درخت چند سطحی از جدولی که با خودش مرتبط میشه استفاده کنید:

Tbl
------------------------
Node Father Data



مثال:
Node Father Data
---------------------------
تهران 0 1
آزادی 1 2
طالقانی 1 3
مازندران 0 4
نور 4 5
کن 1 6
میدان آزادی 2 7


و به همین ترتیب..

noroozifar
یک شنبه 03 اردیبهشت 1391, 20:32 عصر
سلام
من این جدول را ایجاد کرده ام و این فیلداش هستش Id , ParentId,Name,description
و این هم تقریبا مقادیرش هستش
1 0 پدر ریشه
2 1 فرزند1 فرزند
3 1 فرزند2 فرزند
4 1 فرزند3 فرزند
5 2 فرزند4 فرزند1
6 2 فرزند5 فرزند1
7 3 فرزند6 فرزند2

خوب حالا میخواهم دستور انتخابی بنویسم که فقط برگها را بهم برگردانه یعنی در این مثال فرزند 4 و 5 و 6 را بهم نشان بده که خودشون فرزند ندارند ؟
و یک دستور دیگه هم بنویسم مثلا اگر من فرزند 1 را انتخاب کردم تمام زیر فرزندانش را بهم نشان بده ؟

کلا کار با یک درخت هستش ... کار بر روی ریشه و نودها ...... تو اس کیو ال میخواهم دستورات select ایجاد کنم ؟

baktash.n81@gmail.com
شنبه 09 اردیبهشت 1391, 12:14 عصر
خوب برای سئوال آخرتون ... باید رکورد هایی رو انتخاب کنید که ID شون توی ParentID ها نباشه ... Not In...

این روشی که دوستان گفتن کاملا درسته ... اما امکان دیگری به نام hierarchyid هم از SQL 2008 وجود داره ... که می تونید دسترسی راحتتری به درخت ها داشته باشید ... اگه دنبال طراحی به روزتر هستید می تونید از این روش استفاده کنید.