تالار گفتمان nCIS.ir

نسخه‌ی کامل: نرمال سازی دیتابیس
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام
به تصویری که ضمیمه کردم ی نگا بندازید.
این تصویر داره نرمال سازی رو نشون میده.
حالا سوالی که برای من به وجود اومده اینه.
آیا اون جدول وسطی اضافه نیست؟
اکثر افراد برای نرمال سازی از یک جدول میانی استفاده میکنن که از دوتا فیلد تشکیل شده و کار اصلی این جدول فقط ایجا  ارتباط بین دو  جدول دیگر است.
خواستم ببینم آیا این کار درست است؟

اگه جدول وسطی رو حذف کنیم ارتباط این ها هم برقراره:
حالا چ نیازی هست که جدول واسط باشه.

من این رو تو اکثر سایت ها دیدم و برام سوال پیش اومد که پرسیدم.
مرسی
بله کاملاً درسته. توی ارتباط چند به چند، نیاز به یک جدول واسط داریم که توسط اون بگیم یک رکورد از هر جدول، با کدوم رکوردها از جدول دیگه ارتباط داره. اگه جدول وسط رو حذف کنیم، چطور میخواین مشخص کنین که مشتری شماره 11 دو فاکتور به شماره 1001 و 1003 داره؟
در جدول فاکتورها یک فیلد اضافه میکنیم که id مشتری رو ذخیره میکنه.
خوب این مثالی که گذاشتین مثال خوبی برای ارتباط چند به چند نیست چون یک فاکتور فقط متعلق به یک مشتریه. حالا این حالت رو درنظر بگیرین:

جدول پستهای وبلاگ
جدول تگ ها

همونطور که میدونید، یک تگ میتونه روی چند پست ثبت بشه. یک پست هم میتونه چند تگ داشته باشه. اینجا دیگه نمیشه با یک فیلد قضیه رو حل کرد و باید حتماً ارتباط چند به چند رو ازطریق جدول واسط حل کنیم.