PDA

View Full Version : شجره نامه خانوادگی!!!



likemoon
چهارشنبه 25 خرداد 1390, 00:05 صبح
با سلام
من میخوام یه پایگاه داده طراحی کنم .در واقع می خوام یه شجره نامه خانوادگی رو با sqlپیاده سازی کنم . بعد یه محیط گرافیکی کاربر پسند هم طراحی کنم که امکان جستجو از پایگاه دادم توش وجود داشته باشه ، به طوری که با جستجوی نام فرد اطلاعات مربوط به اون از پایگاه داده استخراج بشه و به نمایش در بیاد.
بعد در قدم اول نمیدونم بهتره که جداولمو رو بر اساس والدین و فرزندان طراحی کنم بهتره یا اینکه تمـــــــــــام اعضای خانواده رو توی یک جدول قرار بدم یا بر اساس جنسیت دو تا جدول بسازم یا چه حالت دیگه ایی؟:متفکر:
موارد دیگه ایی هم هست که ایشالا اگه راهنماییم کنید قدم به قدم میپرسمشون

mohammadian7
چهارشنبه 25 خرداد 1390, 00:35 صبح
سلام من فکر میکنم بعد از ریختن اطلاعات افراد در db مهمترین کار برنامه ساخت مجدد ساختار درختی خانواده یا همون شجره نامه است.
که هر انسان باید یه فیلد یکتا داشته باشه مثل اثر انگشت که در برنامه باید ذخیره بشه.حالا چه جوری میخوای ارتباط انسانها رو مشخص کنی باهم من الان راهکاری پیدا نکردم.

حمیدرضاصادقیان
چهارشنبه 25 خرداد 1390, 08:41 صبح
سلام.
شما به چند شکل میتوانید این ساختار درختی رو پیاده سازی کنید.
ولی دو راه که الان راحتتر از همه هستن به این شکل هستن.
یکی اینکه جدول شما دارای یک فیلد Parent باشه و یک فیلد Child که براساس Id های این دو فیلد مشخص میشه که هرشخصی فرزند چه پدری هست.

راه دوم استفاده از Hierarchy id (http://www.google.com/url?sa=t&source=web&cd=1&ved=0CBUQFjAA&url=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Fmagazine%2Fcc794278.aspx&rct=j&q=hierarchy%20id%20in%20sql%20server%202008&ei=bTX4TfiJEcaq8QPCtaXbCw&usg=AFQjCNGNujk6R01CGnlw11i-r7mlC7VJFQ&sig2=kPSVGJH8DkadjcmDA54Y7g&cad=rja) هست که در نسخه 2008 استفاده شده و میتوانید یک فیلد باهمین نوع تعریف کنید.

AMIBCT
چهارشنبه 25 خرداد 1390, 09:24 صبح
با يه جستجوي ساده اين مورد پيدا شد:


http://www.databaseanswers.org/data_models/genealogy/index.htm

خودتون هم مي‌تونستيد اول جستجو كنيد
اگه به نتيجه نمي‌رسيديد يا با مشكلي مواجه مي‌شديد مي‌پرسيديد

likemoon
چهارشنبه 25 خرداد 1390, 20:39 عصر
مرسی دوستان
جناب صادقیان فکر میکنم با راه اولی که گفتید افراد زیادی توی دو تا جدول تکرار بشن برتریش نسبت به اینکه همه رو تو یه جدول بریزم چیه؟.از لینک مورد دوم هم که گذاشته بودید متاسفانه چیز زیادی دستگیرم نشد.
بعد یه چیز دیگه من میخوام برای هر نفر فیلد نام فرزندان داشته باشم بعد بعضیا فرزندان زیادی دارن یا ممکنه در آینده پیدا کنن که باید اضافه بشه ولی نمیدونم فیلد ها رو چچوری مشخص کنم مثلا فرزند 1،2.. ؟یا همین طور در مورد اونایی که دو تا همسر داشتن:لبخند:
amibict مدل بسیار جالبی بود ولی نمیدونم میشه با همین کار کرد یا نه.نظرتون راجب این مدلی که ایشون لینک داده چی هست؟

حمیدرضاصادقیان
شنبه 28 خرداد 1390, 08:57 صبح
در اون لینکی که قرار دادم نحوه پیاده سازی جداول درختی رو با امکانات نسخه 2008 بیان کرده است و این نمونه شما رو باهاش پیاده سازی کرده است.
لینک پست 4 هم جوابگوی شما خواهد بود.

likemoon
جمعه 03 تیر 1390, 22:40 عصر
جدول relationship-type توی مدل بالا یعنی چی؟چه اطلاعاتی باید توش قرار بگیره اصلا لزومی داره بودنش؟
http://www.databaseanswers.org/data_models/genealogy/images/genealogy_conceptual_with_families.gif

AMIBCT
شنبه 04 تیر 1390, 09:08 صبح
به نظرم منظورش این بوده که نوع ارتباط بین دو نفر در این جدول ذخیره بشه

مثلا پدر - فرزندی یا مادر - فرزندی یا همسر - همسر یا ...

البته با استفاده از دو کلید خارجی role_type هم می‌شه این موضوع رو متوجه شد
که اگه یه فیلد جدا داشته باشیم محاسبات کم‌تر می‌شه
در تعداد بالا استفاده از جدول role Type خیلی سنگین می‌تونه باشه