ورود

View Full Version : بهترین روش طراحی این جداول کدام است؟



ro3vayedel
دوشنبه 21 خرداد 1397, 00:17 صبح
با سلام
دوستان عزیز بنده یک جدول دارم که اطلاعات پرسنلی تمام افراد در آن ذخیره شده و یک جدول دارم که مربوط به کلاس های Toolbox meeting هست یعنی کلاس های توجیهی ده تا پانزده دقیقه ای که پیش از شروع کار برای توجیه مخاطرات و آموزش های ایمنی به افراد داده میشه.
خوب در هر کلاس مشخص نیست چند نفر شرکت کنند ممکنه دونفر شرکت کنند و ممکنه چهل نفر شرکت کننده داشته باشم و اصلا مشخص نیست که چه روزهایی تشکیل بشه و اصلا در یکسال تشکیل بشه یا نه(دریکجا هرروز برای تمام افراد برگذار میشه و در بعضی جاها سالی یکبار هم برگذار نمیشه).
بنظرم غیر اصولی است که توی هر فیلد جدول ToolBox meeting پنجاه تا فیلد پرسنل آیدی بذارم که شاید پر بشن و شاید نشن...
بهترین راه برای طراحی این دوتا جدول و رابطه بین آنها چطوره ؟؟؟؟؟؟

ali_md110
دوشنبه 21 خرداد 1397, 13:19 عصر
سلام
یک جدول بسازید و با جدول اشخاص رابطه یک به چند داشته باشید
بدینصورت
Person
PID
pName
....سایر فیلدهای جدول اشخاص
جدول دوم :
MettingId,
PersonId
MettingDate
MettingTypeنوع جلسه
Comment توضیات
و سایر فیلدهای مورد نیاز

نحوه رکورد زدن در یک روز و یک جلسه
1- personId=علی ابراهیمی MettingDate=1397/01/02
2-personId=رضا رضایی MettingDate=1397/01/02
3-رکورد برای سایر اشخاص و روزهای دیگر

روش دیگه اینه یک رابطه چند به چند بین دو جدول Person و metting برقرار کنید
یعنی یک رکورد در جدول metting بزنید
1-MettingId=100,MettingDate=1397/01/02
و یک جدول واسط یزارید بیند این دوجدول و
رکوردهای این جدول واسط
MettingId=100,PersonId=1
MettingId=100,PersonId=2
MettingId=100,PersonId=3

ro3vayedel
دوشنبه 21 خرداد 1397, 15:11 عصر
سلام
یک جدول بسازید و با جدول اشخاص رابطه یک به چند داشته باشید
بدینصورت
Person
PID
pName
....سایر فیلدهای جدول اشخاص
جدول دوم :
MettingId,
PersonId
MettingDate
MettingTypeنوع جلسه
Comment توضیات
و سایر فیلدهای مورد نیاز

نحوه رکورد زدن در یک روز و یک جلسه
1- personId=علی ابراهیمی MettingDate=1397/01/02
2-personId=رضا رضایی MettingDate=1397/01/02
3-رکورد برای سایر اشخاص و روزهای دیگر

روش دیگه اینه یک رابطه چند به چند بین دو جدول Person و metting برقرار کنید
یعنی یک رکورد در جدول metting بزنید
1-MettingId=100,MettingDate=1397/01/02
و یک جدول واسط یزارید بیند این دوجدول و
رکوردهای این جدول واسط
MettingId=100,PersonId=1
MettingId=100,PersonId=2
MettingId=100,PersonId=3
ممنون دوست عزیز
در روش اول فکر کنم افزونگی اطلاعات بالایی داشته باشیم
اما در روش دوم بنظر میاد بهترین حالت با کمترین افزونگی رو خواهیم داشت...
مرسی و ممنون از راهنماییتون دوست عزیز و بزرگوار

unique2017
سه شنبه 22 خرداد 1397, 10:30 صبح
بسیار عالی و خوب بود من که استفاده کردم