تعریف چند استاد برای یک دوره در بانک اطلاعاتی رلشیونال

با درود خدمت دوستان. فکر کنید یک نرم افزار مدیریت آموزش مجازی داریم lms حالا اساتید از قبل تعریف شدن. حالا من می خوام یک دوره بسازم که این دوره ممکن است ۱۰ استاد داشته باشد.

بیشتر مواقع بنده می اومدم اون فیلد تعریف استاد رو به صورت text در نظر می گرفتم و هر شناسه استاد رو با , یا فاصله در اون ذخیره می کردم و در موقع خروجی گرفتن می اومدم اونا رو تبدیل به یک لیست می کردم و با تسک اطلاعات هر کدوموشن رو می آوردم .

حالا می خوام ببنیم راه درستش از نظر شما چی هست ؟ کار من اشتباه است ؟

احساس می کنم نرمالایز نیست کارم در بانک اطلاعاتی

1 Like

یعنی مثلا توی فیلد نام اساتید، نام‌ها رو به شکل csv ذخیره میکردید؟

خوب من اگه بودم یه جدول دیگه برای این کار درست میکردم.

course id | teacher id

بعد ورودیها رو به این شکل بهش میدادم:

1 | 4
1 | 5
1 | 12
2 | 4
1 | 3
2 | 7

و موقع نمایش یا بررسی دسترسیها، یه کوئری اضافه‌تر میزدم برای گرفتن اطلاعات این جدول.

SELECT * FROM teacher-course WHERE course='1';

این id اساتید اون درس رو بهم میده. با یه کوئری پیچیده‌تر میشد از روی این idها اسم اساتید رو از جدول دیگه دریافت کرد. یا همینو میتونیم بدیم به یه for each و چندتا کوئری بزنیم.

2 Likes

درود با فاصله یا ویرگوال اگر بخوایم همسان بیاریم بله تقریبا شبی به csv ولی چون از تسک کمک می گرفتم همزمان اطلاعات سه استاد رو می گرفتم و منتظر نمی موندم تکی تکی اطلاعاتشون بیاند. منم تقریبا کاری شما فرمودید رو امروز انجام دادم یک جدول درست کردم لیست اساتید دوره داخلش هست سعی کردم نرملایز کنمش ولی نمی دونم کار من هم درست است یا خیر یا راه بهتری هست

ببنیم مثلا همین الان جدول یوزر دارم باز جدول اساتید دارم باز یک جدول اساتید مربوط به یک دوره یا کلاس هم داریم. خیلی شدن لامصبا

خوب من واقعا مطالعه‌ی زیادی درمورد دیتابیسها ندارم.
ولی دیتابیسهای یه سری CMS پرطرفدار مثل wordpress و mybb رو که نگاه میکردم، جدولهای زیادی داشتن که مثل این بود. یه جدول که کلا ۲-۳تا ستون داره و در کنار جداول دیگه معنا پیدا میکنه.

سندرم کاغذ سفیده :grin:
نویسنده‌ها دچارش میشن. اول که میشینن پای کار، با خودشون میگن «حالا چطوری شروع کنم؟» بعد به خودشون میان میبینن ۱۰۰صفحه نوشتن، معلوم هم نیست اینهمه مطلب از کجا اومده :grin:

فقط داکیومنت فراموش نشه. درمورد همین جداول و ارتباطشون.
من قبلا یه پروژه انجام دادم همینطوری یهو پیچیده شد، تا آخرشم نرسیدم داکیومنت اینجور چیزا رو درست کنم.
خداروشکر، تیم بعدی قراره کلا پروژه رو بازنویسی کنن :sweat_smile: (پروژه رو با پایتون زدم، الآن رفتن یه تیم .net آوردن کلا داره تمام نرم‌افزارها رو با .net بازنویسی میکنه. این بزرگترین عقب‌نشینی در تاریخ بشره)

1 Like

از بس فرم درست کردم دیگه خسته شدم بدنم نمی کشه :smiley: