محمدرضا فلکی
12 ماه پیش توسط محمدرضا فلکی مطرح شد
2 پاسخ

چه شکلی یه پروژه برای مدرسه بزنم

سلام
توی تحلیل پروژه گیر کردم.
پروژه ای که قراره بزنم اینطوریه که ادمین میاد معلم ها، دانش آموز ها، کتاب ها و کلاس هارو تعریف میکنه.
بعدش میاد به‌هم دیگه ربطشون میده.
مثلا اقای احمدی، مدرس کتاب انگلیسی، برای کلاس هفتم هستن که توی کلاس هفتم 18 تا دانش آموز از جمله رضایی و محمدی و ... هستن.
و معلم ها میان و نمرات دانش آموز ها رو اونجا ثبت میکنن.
و دانش آموز ها هم نمرات خودشون رو نگاه میکنن.
یعنی هر معلم و دانش آموز پنلی برای خودشون دارن.
چیزی که من فکر کردم روش این بود که این مدل ها نیازن:
Admin
Student (رابطه چند به چند با معلم و کتاب)
Teacher (رابطه چند به چند با دانش آموز و کتاب)
Book (رابطه چند به چند با معلم و دانش آموز)
Score (هنوز تحلیل نکردم رابطشو)
ولی بعدش فکر کردم که ظاهرا مدل class هم نیازه.
نمیدونم واقعیتش.
ممنون میشم بهم کمک کنید.


ثبت پرسش جدید
محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 12 ماه پیش مطرح شد
1

سلام
خیلی استرس نگیر سر این چیزا و گیج هم نکن خودت رو
ببین چیو میخوایی نگه داری و چیو میتونی نگه داری
خیلی وقت ها admin و student و teacher هر سه در اصل یک مدل هستند چون اطلاعات ذخیره سازی شون یکیه بجز چند فیلد ساده که میشه اون رو یک جدول تکمیلی کردش و فقط یه فیلد type برای این اشخاص قرار داد
مخصوصا توی مدرسه فقط اسم فامیل ادرس کد ملی اینا هست که همشو میشه یه جدول کرد

در رابطه با book اون رو هم میییییشه با فرض این که هر معلم فقط یک درس توی مدرسه تدریس میکنه براش فقط یک فیلد به همون جدول user اضاف کرد
ببین اینا خیلی به این ربط داره که پروژت چقد بزرگ باشه و چقد بخایی کارتو سبک تر کنی
ولی در اصل بله باید جدولش جدا باشه چون ممکنه دو یا سه درس داشته باشن و خب با فرض اول اگر جدول دانش اموز و استاد یکی بشه پس جاش نیست توی جدول کنار هر دانش اموز هم یه فیلد book یا همون درسی که استاد تدریس میکنه قرار بدیم

مدل score اضاف هست کاملا
شما درسی داره به اسم انگلیسی با 20 سطر دانش اموزاش
خب یه فیلد توی همون جدول class_student که قراره بگه چه دانش اموزی با چه استادی چه درسی رو داره قرار میدی که ته ترم نمرش رو قرار بدی همونجا تا بعدا میانگین نمرات یک استاد و یک کلاس درس هم برات قابل محاسبه باشه ( ایجا لازمه ذکر کنم جدول کلاس فقط استاد و درس رو داره با مثلا ترمی که برگذار میشه و شماره کلاسش حتی و بعدا توی یک جدول رابط مثل class_student میایی براش دانش اموزاش رو رابطه یک به چند قرار میدی)

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

پس خلاصش
شما جدولی داری برای دروس Courses
جدول استاد یا حالا به طور کلی User این دیگه دست خودته که چیکارش کنی
جدولی داری که میگه چه استادی چه درسی رو در چه ترمی یا سالی برداشته که کلاس های درسیته میتونی Class در نظر بگیری
جدول رابطی برای کلاس درس و دانشجوهای شرکت کننده در اون که فیلد نمره کل دانش اموز و میان ترم رو هم همینجا میتونی بزاری class_student

میتونی جدول ریز نمراتی داشته باشی برای هر جلسه درس که استاد پرسش و ازمون که داشته باشه برای خودش رکورد ثبت کنه
مثلا فلان کلاس ( که خودش استاد و نام درس رو توی خودش داره دیگه ) به فلان دانش اموز برای پرسش یا امتحان یا تمرین یا بخش بندی دلخواهت نمره فلان رو داد
این دلخواهته که بزاریش یا نه

برای class_student چون student اشاره به جدول user داره و یا استادت teacher یا professor به همون user اشاره میکنه توی مدل مثلا class_student موقع نوشتن رابطه باید فیلد هاش رو مشخص کنی که بتونی به دانشجو و استاد هردو به یک جدول وصل بشی

    public function professor()
    {
        return $this->belongsTo(User::class,'professor_id','id');
    }

محمدرضا فلکی
تخصص : Learning Laravel
@m.reza6920 12 ماه پیش مطرح شد
1

خیلی ممنونم @salar.mohammad2013 عزیز


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام