PDA

View Full Version : کاهش بازدهی دیتابیس با افزایش رکورد



alikamyab
چهارشنبه 11 آبان 1390, 16:33 عصر
با سلام
من پروژه های کوچک و متوسط در زمینه database زیاد کار کردم اما سوالی برایم پیش آمده
فرض کنید ما یک آزمون آنلاین برای مدرسه راه اندازی کنیم

1 - آیا بهتر است پاسخهای 4 گزینه ای دانش آموزان را به صورت یک رشته در یک فیلد متنی ذخیره کنیم؟
2 - و یا اینکه پاسخ هر سوال را در یک رکورد ذخیره نماییم؟

فرض کنید که 500 دانش آموز به 20 آزمون 20 سوالی پاسخ میدهند بنابراین اگر پاسخ هر سوال را در رکورد جداگانه ذخیره کنیم برای همین مثال 200000 رکورد در جدول مربوطه ایجاد خواهد شد و حالا فکر کنید که قرار است سوابق 20 سال که هر سال دهها آزمون برگزار میشود را در دیتابیس نگهداری کنیم

با توجه به اینکه اطلاعات پاسخنامه ها فقط چند عدد هستند (یعنی اطلاعات حجیمی نیستند) آیا ایجاد این همه رکورد باعث کاهش سرعت دیتابیس نمیشود؟

کدام راه حل بهتر است؟ 1 یا 2 ؟

Felony
پنج شنبه 12 آبان 1390, 09:24 صبح
اگر قرار بود من همچین پایگاهی طراحی کنم به صورت زیر طراحی میکردم :

جدول اشخاص آزمون دهنده ( نام ؛ نام خانوادگی و ... )
جدول سوالات ( سوال ، پاسخ 1 ، پاسخ 2 ، پاسخ 3 ، پاسخ 4 ؛ شماره پاسخ صحیح ( 1 یا 2 یا 3 یا 4 ) ، الیته اگر همیشه آزمون ها چهار گزینه ای نباشه بخش مربوط به پاسخ ها رو به یک جدول جدا تبدیل میکنیم .
جدول پاسخ ها ( شماره آزمون ؛ تاریخ آزمون ؛ کد فرد ازمون دهنده ؛ شماره سوال ؛ شماره پاسخ )

اینجوری هم افزونگی اطلاعات ندارید هم به راحتی میتونید گزارش های مورد نظر رو بگیرید .