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

نسخه‌ی کامل: طراحی پایگاه داده (حل شد)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام خدمت دوستان عزیز و مدیران محترم

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

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

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

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

تشکر از راهنمایی تون Heart Heart Heart Heart