PDA

View Full Version : طراحی جداول و نحوه ارتباطات



DataMaster
پنج شنبه 28 تیر 1386, 13:07 عصر
سلام
البته این سوال مربوط به طراحی میشه ولی خوب بخش بهتری پیدا نکردم
فرض کنید میخواهیم اطلاعات مربوط به محل یک شخص را داشته باشیم (استان - شهر - بخش -ناحیه)
یعنی چند استان داریم که هر استان شامل چند شهر و هر شهر شامل چند بخش و هر بخش شامل چند ناحیه هستن)
من در طاحی و نحوه ارتباطات سردرگم شدم و نمی دونم بین جداول چه ارتباطاتی قرار بدم و نهایتا باید چه اطلاعاتی برای پیدا کردن مشخصات محل مورد ذخیره کنم
ممنون

SYNDROME
پنج شنبه 28 تیر 1386, 15:02 عصر
با سلام

سلام
البته این سوال مربوط به طراحی میشه ولی خوب بخش بهتری پیدا نکردم
فرض کنید میخواهیم اطلاعات مربوط به محل یک شخص را داشته باشیم (استان - شهر - بخش -ناحیه)
یعنی چند استان داریم که هر استان شامل چند شهر و هر شهر شامل چند بخش و هر بخش شامل چند ناحیه هستن)
من در طاحی و نحوه ارتباطات سردرگم شدم و نمی دونم بین جداول چه ارتباطاتی قرار بدم و نهایتا باید چه اطلاعاتی برای پیدا کردن مشخصات محل مورد ذخیره کنم
ممنون
شما می توانید یک ساختار Treeبرای این کار پیاده کنید و در زیر شاخه هر شاخه قسمتهای مربوط به آن را مشخص کنید.
حالا با ذخیره مثلاً یک روستا می توانید به استان و کشور و . . . برسید.
موفق باشید

AminSobati
جمعه 29 تیر 1386, 11:15 صبح
ساختار درختی میتونه روش خوبی باشه به این شرط که استان و شهر و .... دقیقا یک Entity محسوب بشن و Attributeهای مخصوص به خود نداشته باشن. یعنی بشه همه اونها رو یکسان دید و در یک جدول قرار داد. در غیر اینصورت، شما میبایست برای هر کدوم یک جدول جدا بگیرین و بینشون ارتباط برقرار کنین.

DataMaster
جمعه 29 تیر 1386, 23:15 عصر
ممنون از راهنماییتون
من از ساختار درختی نمی تونم استفاده کنم چون موجودیتها خواص غیر مشترک بسیار زیادی دارن ، این مسئله ای که عنوان کردم فقط یک مثال بود برای مسئله اصلی. در واقع من میخوام پست یک شخص رو توی یه سازمان مشخص کنم ، ولی در نگهداری اطلاعات مورد نظر برای شخص کمی سردرگم هستم
اگه ممکنه در حالت غیر دزختی راهنمایی کنید

AminSobati
یک شنبه 31 تیر 1386, 23:08 عصر
برای Entityهایی که میتونن زیر مجموعه همدیگه باشند (مثل کارمند، بخش، قسمت، گروه و ... ) PK اونها رو به شکلی بگیرین بین تمام این Entityها یونیک باشند. یعنی مثلا اگر یک "کارمند" شماره اش 5 باشه، در جدول "بخش" که کارمند میتونه زیر مجموعه اون بشه، عدد 5 نداشته باشیم. حالا در یک جدول مجزا، ساختار درختی رو پیاده سازی کنین. زمانی که زیر مجموعه یک کارمند یا بخش رو لازم دارید، بعد از پیمایش درخت و بدست آوردن اونها، میتونین با جدول کارمندها و بخشها Join کنین و نامهای اونها رو بدست بیارین