PDA

View Full Version : برقراری ارتباط بین جداول چقدر اهمیت دارد؟



veniz2008
یک شنبه 19 شهریور 1391, 19:14 عصر
سلام. برقراری ارتباط بین جداول چقدر ضرورت داره؟. آیا اونقدر اهمیت داره که به جدول (ها) مون یک فیلد غیر ضروری اضافه کنیم؟. آیا در چنین مواردی اضافه کردن فیلد به جدول توصیه میشه؟. آیا این کار برخلاف قاعده افزونگی نیست؟. البته جلوگیری از ورود داده غیر مجاز رو میتونم با کدنویسی چک کنم و جلوش رو بگیرم ولی من فرض میکنم کاربر بطور مستقیم جداول رو در اختیار داره و به هردلیلی (سهوا یا عمدا") داده غیرمجاز رو درون جداول بصورت دستی وارد کنه. با این توضیحاتی که دادم بهترین کار چی هست؟

maktoom
یک شنبه 19 شهریور 1391, 22:00 عصر
سلام.
اگه اینکار رو نکنید در برنامه نویسی باید دقت بسیاری کنید. این موضوع وقتی حادتر میشه که بخواید از یه فریم ورک پیچیده استفاده کنید.

Arash_janusV3
دوشنبه 20 شهریور 1391, 00:22 صبح
اگر قرار باشه کاربر مستقیم اطلاعات در جداول وارد کنه بهتره از دیتابیس Access استفاده کنید
چون این قدرت رو داره که کاربر رو مدیریت کنید و پیغام هایی رو در صورت اشتباه وارد کردن نمایش بدید و یا راهنما برای پر کردن اطلاعات به کاربر نمایش بدید و ...
ولی اگر قراره در sql باشه باید بسته به نیاز برنامه نویسی جداول رو تفکیک کنید و این هم به راحتی نمی شه عنوان کرد چه جداولی باید تفکیک شده باشه یعنی هر جدول اطلاعات خودش رو داشته باشه
و وظایف خودش رو انجام بده و شما باید بین اینها ارتباط برقرار کنید

اما از این موضوع هراسی نداشته باشید وقتی قراره یک جدول رو پیاده کنید این کار رو انجام بدید و در اون داده وارد کنید و مطمئن باشید 70 درصد اشکال جدول در حین وارد کردن داده نمایان می شه
و تقریبا می تونید جداول رو به طور منظم تفکیک کنید
و وقتی تفکیک کردید بین آنها ارتباط برقرار می کنید
برای اضافه کردن فیلد در هیچ شرایطی مشکلی پیش نمیاد مگر در مواردی که مثلا 100 رکورد وارد شده
و بعد از مدتی احساس می شه یک فیلد وجود نداره و اون رو که اضافه کردید تازه متوجه می شید که این فیلد باید 100 رکورد هم داده داشته باشه
در این لحظه کار شما به مشکل مواجه می شه

موفق باشید

m0hammad_01
دوشنبه 20 شهریور 1391, 01:44 صبح
سلام
واقعا خوشحال شدم دیدم که کسی هست که داره به این مسائل پایه فکر میکنه.
یه مساله ساده.تو سیستم کتابخانه دو تا جدول داریم.کتاب و امانت.من چطوری بیام بگم که فلان کتاب در فلان تاریخ یا توسط فلانی یا ... به امانت برده شد؟
میام می گم هر کتاب n بار امانت داده شده و در هر امانت، یک کتاب امانت داده شده.پس کلید خارجی رو میزارم تو جدول امانت.این یعنی رابطه دیگه.
به نظر شما راه حل دیگه ای برای بدست آوردن اطلاعات داریم اینجا؟

Arash_janusV3
دوشنبه 20 شهریور 1391, 10:52 صبح
سلام
واقعا خوشحال شدم دیدم که کسی هست که داره به این مسائل پایه فکر میکنه.
یه مساله ساده.تو سیستم کتابخانه دو تا جدول داریم.کتاب و امانت.من چطوری بیام بگم که فلان کتاب در فلان تاریخ یا توسط فلانی یا ... به امانت برده شد؟
میام می گم هر کتاب n بار امانت داده شده و در هر امانت، یک کتاب امانت داده شده.پس کلید خارجی رو میزارم تو جدول امانت.این یعنی رابطه دیگه.
به نظر شما راه حل دیگه ای برای بدست آوردن اطلاعات داریم اینجا؟

یک جدول برای کتاب ها و یک جدول هم برای تعیین وضعیت که در این جدول باید ID کتاب ذخیره بشه
اما یک نکته : باید بر اساس یک شناسه فهمید که آخرین وضعیت کتاب چیه و وقتی این رو پیاده سازی کنید خیلی از مسائل رو پوشش میده
به عنوان مثال باید شناسه شماره مدرک در نظر گرفته بشه که اون رو از طریق برنامه نویسی در داده ها اضافه کرد و کاربر هیچ نقشی نداشته باشه
و به صورت خودکار ذخیره بشه این شماره مدرک از شماره 1 شروع می شه
شماره 1 : امانت
شماره 2 : بازگشت
شماره 3 : امانت
و...
و شماره مدرک باید بر اساس تاریخ عمل کنه
یعنی تاریخ مدرک شماره مدرک 3 باید مساوی یا بزرگتر از تاریخ شماره مدرک 2 باشه
خوب حالا در اینجا می شه فهمید چه کتابی در چه وضعیتی هستش
یعنی وقتی بزرگترین شماره مدرک رو از جدول به دست بیارید وضعیت کتاب مشخص می شه
موفق باشید