رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
طراحی پایگاه داده (حل شد)
#1
سلام خدمت دوستان عزیز و مدیران محترم

من دارم پایگاه داده یک سیستم آموزشگاهی رو طراحی میکنم که تویه این سیستم هر دانشجو میتونه به پروفایل شخصی خودش وارد بشه و اطلاعاتی رو اونجا ببینه. مثل مثلا نمرات یا لیست جلسات مشاوره ای که شرکت کرده یا فایل هایی که براش آپلود شده رو ببینه.
از طرف ادمین هم میشه واسه هر دانشجو نمره ثبت کرد و یا جلسات مشاورشو ثبت کرد. میشه اطلاعیه فرستاد به دانشجو ها به هم به صورت شخصی و هم به صورت کلی و... .

من تویه این سناریو واسه ی هر دانشجو تقریبا 8 الی 10 تا جدول در نظر گرفتم. که موقع ثبت دانشجوی جدید از طرف مدیریت اون 10 تا جدول با کوئری هایی که نوشتم باید ساخته بشه.
مث مثلا جدول اطلاعیه ها / جدول نمرات کلاسی و ...

به نظرتون این سناریو درسته و کار خواهد کرد؟ سرعت سیستم رو پایین میاره یا نه ؟؟
یا اگه این سناریواشتباهه لطفا راه های درست رو برام بگید.

با تشکر
پاسخ
تشکر شده توسط:
#2
بطور کلی ساخت جدول جداگانه برای هر دانشجو اشتباهه و از ساخت جدول و کلاً کارهایی که اصطلاحاً Schema رو تغییر میده بجز در موارد خیلی خاص و استثنا باید پرهیز کنید. بنظر من بهتره یه جدول باشه برای اطلاعیه ها و جدول نمرات کلاسی و... و یه فیلد درنظر بگیرین تحت عنوان student_id که به جدول students ازطریق کلید اصلی id وصله (نقش کلید خارجی رو ایفا میکنه). مثلاً اطلاعیه های همه دانشجوها توی یه جدوله و فرضاً اگه اطلاعیه ای مربوط به دانشجوی شماره 4 باشه، توی همون رکورد از جدول اطلاعیه ها، فیلد student_id مقدار 4 خواهد داشت.
پاسخ
تشکر شده توسط: vahid0412
#3
اینطوری مثلا اگه حدود 4000 تا دانشجو داشته باشم
سرعت select پایین نمیاد ؟
پاسخ
تشکر شده توسط:
#4
اگه index کنید خیر سرعت پایین نمیاد.
پاسخ
تشکر شده توسط: vahid0412
#5
باید همشو ایندکس کنم ؟
پاسخ
تشکر شده توسط:
#6
خیر فقط فیلد کلید خارجی رو ایندکس کنید کافیه.
پاسخ
تشکر شده توسط: vahid0412
#7
(28-06-1394، 11:22 ب.ظ)ADMIN نوشته: خیر فقط فیلد کلید خارجی رو ایندکس کنید کافیه.

تشکر از راهنمایی تون Heart Heart Heart Heart
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 3 مهمان