نقل قول: اصول طراحی دیتا بیس
با سلام
روش دوم دارای افزونگی طبیعی خیلی زیادی میشود و اگر حجم دیتا بیس شما در آینده زیاد میشود تحت هیچ شرایطی از روش دوم استفاده نکنید.
در روش اول خود شما اصول طراحی دیتا بیس نرمال را شرح دادید که توصیه میشود اکیدا از روش اول استفاده فرمائید. و شما میتوانید با پیوند جداول به فیلدهای مورد نظرتون دسترسی پیدا کنید.
موفق باشید.
نقل قول: اصول طراحی دیتا بیس
با تشکر از لطفی که کردین امیر خان اخرش روش اول خوبه یا دوم ؟
چون یک بار گفتین روش اول استفاده نکنید بعد گفتید اکید استفاده کنید
نقل قول: اصول طراحی دیتا بیس
سلام.
روش دوم شما ایراد دارد. به این دلیل که ممکنه بخواهید مثلا نام یک شهر رو عوض کنید یا اصلاح کنید.مجبورید کل جدول را تغییر بدید.
روش اول شما هم مقداری ایراد داره.چون تعداد Join های شما افزایش پیدا خواهد کرد. و اگر بخواهید برای هرکدوم یک جدول جدا در نظر بگیرید مجبورید برای هر بار که میخواهید یک گزینه جدید اضافه کنید یک جدول نیز اضافه کنید و در کدنویسی هاتون تغییر بدید.
راه سومی که پیشنهاد میدم این هست که یک جدول اطلاعات پایه داشته باشید.
این جدول دارای سه ستون هست.
یک فیلد مربوط به Id گروه مورد نظر هست. یک فیلد id ردیف مورد نظر و یک فیلد هم نام آن.
حالا شما فرضا میخواهید لیست شهرها رو وارد کنید. فرضا شما شهر رو در گروه 1 قرار میدهید این گروه میتونه تمامی شهرها رو داشته باشه.
گروه دوم میشه مربوط به تحصیلات.
گروه سوم میشه محل تولد و...
حتی در این حالت میتونید به کاربر این امکان رو بدید که خودش بیاد لیست این گروهها و اسامی رو کم و زیاد کنه یا اصلاح کنه.
دیگه در بروز رسانی های بعدی نیازی نیست تغییری در کد نویسی بدید.
همچنین کلا یک join با جدول خواهید داشت.
ترکیب هر دو فیلد id , idGroup نیز میشه PK شما.
4 ضمیمه
نقل قول: اصول طراحی دیتا بیس
باعرض سلام وتشکر از جناب صادقیان
من مطابق فرمایش شما جدولی را در اکسس شبیه سازی کردم که تقریبا شبیه sql است که عکس ان را ضمیمه کردم همانطور که مشاهد میکنید دو جدول a که جدول اصلی b که جدول فرعی است داریم حال برای ساخت کوئری مطابق عکس ضمیمه با حدول b یا فرعی را تفکیک کنیم تا بتوانیم join کنیم که این همان اتفاقی است که در حالت اول که در بالا عرض کردم اتفاق میافتد یعنی یعنی با ازای هر ستون که با کد نوشته میشود یک جدول فرعی.
ایا این تحلیل درست است؟
نقل قول: اصول طراحی دیتا بیس
سلام.
بله الان این همون چیزی هست که عرض کردم.
حالا اگر میخواهید نام گروهها رو هم داشته باشید میتوانید یک جدول داشته باشید که id و نام گروه رو ذخیره کنه و اونو با جدول b به طور پدر و فرزند رابطه داره و جدول b هم مشخصات زیر مجموعه هر گروه رو داره.