PDA

View Full Version : ثبت درس در سیستم مدرسه ؟



nice_boy_a
یک شنبه 30 مرداد 1390, 21:00 عصر
سلام.
واسه ثبت درس جدید این فیلدها لازمه:
کد درس
کد رشته
نام درس
تعداد واحد
حالا اگه درس عمومی باشه،مختص همه ی رشته ها میشه. چه جوری مشخص کنم که درس عمومیه ؟
به نظر من یه فیلد دیگه میزاریم که مشخص کنه نوع درس چیه؟ (نوع درس: عمومی یا تخصصی)
ولی بازم یه مشکلی هست.
مثلا اگه درس ریاضی رو ثبت کردیم، واسه یه رشته ثبت میشه چون یه کد رشته ثبت کردیم.و واسه هر رشته باید درس ریاضی رو ثبت کنیم.این جوری یکم ناجور میشه.
باید اگه یه درس عمومی ثبت شد تو همه ی رشته ها قابل مشاهده باشه.(یعنی هر درس عمومی رو فقط یک بار ثبت کنیم.)
امکانش هست ؟
ممنون میشم راهنمایی کنین.

mehran_sh_t
دوشنبه 31 مرداد 1390, 09:01 صبح
سلام
اگر می خوای جدولت همین باشه، به چنین مشکلی بر می خوری، مگر اینکه این فیلد ها رو جدا کنی! اینطوری دیگه اطلاعات درس ها تکرار نمی شه!
یه جدول داری نام رشته ها:
کد رشته، نام رشته

جدول بعدی نام درس ها:
کد درس، نام درس، تعداد واحد

جدول رشته-درس:
کد رشته- کد درس

بر اساس نیازت می تونی این آخری رو تغییر بدی، مثلا نام ترم (مثلا 90-1) و نام استادی که این درس رو ارائه می ده رو به این اضافه کنی، یا اینها رو هم تو یه جدول دیگه بریزی (که فکر کنم اینطوری بهتر)

** یه چیز دیگه که الان به ذهنم رسید، کد رشته رو از نوع ForeignKey تعریف می کنی دیگه؟ اگر Null هم بتونه بگیره، واسه دروس عمومیت، اون رو Null بذار، بعد در خوندن درس های رشته، اونهایی که برابر با کد رشته و یا Null هستند...

saeid1389
دوشنبه 31 مرداد 1390, 12:50 عصر
سلام
با نظر آقا مهران موافقم به جز

** یه چیز دیگه که الان به ذهنم رسید، کد رشته رو از نوع ForeignKey تعریف می کنی دیگه؟ اگر Null هم بتونه بگیره، واسه دروس عمومیت، اون رو Null بذار، بعد در خوندن درس های رشته، اونهایی که برابر با کد رشته و یا Null هستند...

برای دروس عمومی هم می تونی:
یه ستون برای جدول درس بذاری با عنوان نوع درس(عمومی، پایه یا تخصصی)، که میتونی نوع فیلد رو هم bit ( یک برای عمومی، 0 برای پایه و Null هم برای تخصصی ) , ویا از نوع char(1) بگیری و به ترتیب مقادیر 0 و 1 و 2 رو به اونها اختصاص بدی

nice_boy_a
دوشنبه 31 مرداد 1390, 23:44 عصر
سلام
با نظر آقا مهران موافقم به جز


برای دروس عمومی هم می تونی:
یه ستون برای جدول درس بذاری با عنوان نوع درس(عمومی، پایه یا تخصصی)، که میتونی نوع فیلد رو هم bit ( یک برای عمومی، 0 برای پایه و Null هم برای تخصصی ) , ویا از نوع char(1) بگیری و به ترتیب مقادیر 0 و 1 و 2 رو به اونها اختصاص بدی


حالا اگه یه درس عمومی ثبت کردیم(مثلا ریاضی)،این درس واسه رشته ی خاصی ثبت میشه ، چون :
کد درس: مثلا 1
نوع درس: عمومی
کد رشته: مثلا کامپیوتر
نام درس: ریاضی
تعداد واحد:1

درس ریاضی که عموی هست فقط مال رشته ی کامپیوتر میشه و فقط میشه تو لیست دروس کامپیوتر اونو مشاهده کرد.
اگه بخواهیم تو بقیه رشته ها هم درس ریاضی رو ببینیم باید واسه هر رشته درس ریاضی رو ثبت کنیم، که اینجوری نمیشه(دروس عمومی باید یک بار ثبت بشن و تو همه رشته ها باشن)

saeid1389
سه شنبه 01 شهریور 1390, 00:25 صبح
سوالتو دوباره خوندم، تازه متوجه سوالت شدم



به نظر من یه فیلد دیگه میزاریم که مشخص کنه نوع درس چیه؟ (نوع درس: عمومی یا تخصصی)



فکر خوبیه،


مثلا اگه درس ریاضی رو ثبت کردیم، واسه یه رشته ثبت میشه چون یه کد رشته ثبت کردیم.و واسه هر رشته باید درس ریاضی رو ثبت کنیم.این جوری یکم ناجور میشه.
باید اگه یه درس عمومی ثبت شد تو همه ی رشته ها قابل مشاهده باشه.(یعنی هر درس عمومی رو فقط یک بار ثبت کنیم.)

اگه درست سوالت رو فهمیده باشم مثلا برای یه دبیرستان که رشته های ریاضی، تجربی، و انسانی داره بعضی دروس مثل ادبیات یا ریاضی برای یه رشته درس عمومی و برای رشته دیگه درس تخصصیه، ضمنا ضرایبشون هم متفاوته. بعضی درس ها رو هم داریم که برای هرسه رشته مشترکه-هم نوع درس و هم ضریب اون درس - بنابراین دو حالت زیر رو داریم:

1- اگه درسی تو همه رشته ها مشترک باشه:
درسی باید تو همه ی رشته ها قابل مشاهده باشه که مشترک باشه- چه از لحاظ نوع درس عمومی یا تخصصی ، و چه از لحاظ تعداد واحد- که در این حالت یکبار ثبت می شه:
می تونی تو جدول رشته- که شامل ریاضی، تجربی و انسانی می شه- یه رکورد اضافه کنی با عنوان هر سه رشته و کلید اونو به عنوان کلید خارجی تو جدول درس استفاده کنی، بعد هر وقت خواستی فقط دروس یه رشته مثلا رشته ریاضی رو نشون بدی. می تونی از دستور زیر استفاده کنی
...WHERE courseId=1 OR courseId=4 ...
1برای کلید یا آی دی رشته ریاضی و 4 هم برای کلید هرسه رشته
2- اگه درسی وجود داشت که برای هرسه رشته اسم مشترک داشت اما نوع درس- عمومی یا اصلی- و تعداد واحدش فرق می کرد، در این حالت تنها تکرار نام درس -تکرار به تعداد رشته -رو داریم که می تونی برای نام درس یه جدول دیگه در نظر بگیری و کلید اونو به عنوان کلید خارجی تو جدول درس بذاری، البته چون تعداد تکرارها کمه نیازی به این کار نیست.

اگه فرض هایی که بر مبنای اون ها مطالب بالا رو نوشتم اشتباهه، با یه مثال سوالت رو بیشتر توضیح بده

Galawij
پنج شنبه 03 شهریور 1390, 10:45 صبح
حالا اگه درس عمومی باشه،مختص همه ی رشته ها میشه. چه جوری مشخص کنم که درس عمومیه ؟

یک رکورد با عنوان همه رشته ها به جدول رشته ها اضافه کنید، درست می شه.

nice_boy_a
جمعه 04 شهریور 1390, 14:22 عصر
مرسی از پاسخ همتون.
به نظر من فیلد با عنوان "همه رشته ها" لازم نیست.
یه فیلد جدید به نام "نوع درس" اضافه کردم.فرقی نمیکنه با چه رشته ای ثبت بشه.(نوع درس یا عمومی یا تخصصی)
دروس تخصصی هر رشته و دروس عمومی رو میشه نمایش داد.(دروس عمومی تو هر رشته نمایش داده میشه)
باید قسمت where رو این جوری بنویسیم


Where CodeReshte=CodeReshte or CorseType=’عمومی’



نظر دوستان چیه ؟

saeid1389
شنبه 05 شهریور 1390, 00:27 صبح
جواب میده
البته اگه یه رکورد با عنوان همه رشته ها به جدول رشته ها اضافه بشه دیگه نیازی به فیلد نوع درس هم نیست.