در این سوال قصد داریم برای یک دبستان ، درس افزار هوشمند طراحی کنیم.

البته تنها بخش طراحی ارتباط مدل ها برای Eloquent ، به شما سپرده شده است.

پروژه اولیه

پروژه اولیه را از اینجا دانلود کنید. ساختار فایل‌های این پروژه به صورت زیر است:

ocw_initial
├─ app
│   ├─ Console
│   │   └─ Kernel.php
│   ├─ Exceptions
│   │   └─ Handler.php
│   ├─ Http
│   │   ├─ Controllers
│   │   │   ├─ Auth
│   │   │   │   ├─ ForgotPasswordController.php
│   │   │   │   ├─ LoginController.php
│   │   │   │   ├─ RegisterController.php
│   │   │   │   ├─ ResetPasswordController.php
│   │   │   │   └─ VerificationController.php
│   │   │   └─ Controller.php
│   │   ├─ Middleware
│   │   │   ├─ Authenticate.php
│   │   │   ├─ CheckForMaintenanceMode.php
│   │   │   ├─ EncryptCookies.php
│   │   │   ├─ RedirectIfAuthenticated.php
│   │   │   ├─ TrimStrings.php
│   │   │   ├─ TrustProxies.php
│   │   │   └─ VerifyCsrfToken.php
│   │   └─ Kernel.php
│   ├─ Providers
│   │   ├─ AppServiceProvider.php
│   │   ├─ AuthServiceProvider.php
│   │   ├─ BroadcastServiceProvider.php
│   │   ├─ EventServiceProvider.php
│   │   └─ RouteServiceProvider.php
│   ├─ Assignment.php
│   ├─ Classroom.php
│   ├─ Course.php
│   ├─ Grade.php
│   ├─ Score.php
│   ├─ Student.php
│   ├─ Teacher.php
│   └─ User.php
├─ bootstrap
│   ├─ cache
│   └─ app.php
├─ config
│   ├─ app.php
│   ├─ auth.php
│   ├─ broadcasting.php
│   ├─ cache.php
│   ├─ database.php
│   ├─ filesystems.php
│   ├─ hashing.php
│   ├─ logging.php
│   ├─ mail.php
│   ├─ queue.php
│   ├─ services.php
│   ├─ session.php
│   └─ view.php
├─ database
│   ├─ factories
│   │   └─ UserFactory.php
│   ├─ migrations
│   │   ├─ 2014_10_12_000000_create_users_table.php
│   │   ├─ 2014_10_12_100000_create_password_resets_table.php
│   │   ├─ 2018_10_17_210426_create_assignments_table.php
│   │   ├─ 2018_10_17_210433_create_classrooms_table.php
│   │   ├─ 2018_10_17_210438_create_scores_table.php
│   │   ├─ 2018_10_17_210449_create_grades_table.php
│   │   ├─ 2018_10_17_210608_create_students_table.php
│   │   ├─ 2018_10_17_210613_create_teachers_table.php
│   │   ├─ 2018_10_17_212155_create_courses_table.php
│   │   └─ 2018_10_17_214617_create_assignment_student_table.php
│   └─ seeds
│       └─ DatabaseSeeder.php
├─ public
│   ├─ css
│   │   └─ app.css
│   ├─ js
│   │   └─ app.js
│   ├─ svg
│   │   ├─ 403.svg
│   │   ├─ 404.svg
│   │   ├─ 500.svg
│   │   └─ 503.svg
│   ├─ .htaccess
│   ├─ favicon.ico
│   ├─ index.php
│   └─ robots.txt
├─ resources
│   ├─ js
│   │   ├─ components
│   │   │   └─ ExampleComponent.vue
│   │   ├─ app.js
│   │   └─ bootstrap.js
│   ├─ lang
│   │   └─ en
│   │       ├─ auth.php
│   │       ├─ pagination.php
│   │       ├─ passwords.php
│   │       └─ validation.php
│   ├─ sass
│   │   ├─ _variables.scss
│   │   └─ app.scss
│   └─ views
│       └─ welcome.blade.php
├─ routes
│   ├─ api.php
│   ├─ channels.php
│   ├─ console.php
│   └─ web.php
├─ storage
│   ├─ app
│   ├─ framework
│   │   ├─ cache
│   │   ├─ sessions
│   │   ├─ testing
│   │   └─ views
│   └─ logs
├─ tests
│   ├─ CreatesApplication.php
│   └─ TestCase.php
├─ .editorconfig
├─ .env.example
├─ .gitattributes
├─ artisan
├─ composer.json
├─ composer.lock
├─ package.json
├─ phpunit.xml
├─ server.php
└─ webpack.mix.js
Plain text

جزئیات

مدل ها

  1. Assignment : تکلیف
  2. Classroom : کلاس
  3. Course : درس
  4. Grade : پایه تحصیلی
  5. Score : نمره
  6. Student : دانش آموز
  7. Teacher : معلم

ارتباطات مدل ها

  • هر کلاس یک معلم و هر معلم یک کلاس دارد.
  • هر کلاس چندین دانش آموز دارد و هر دانش آموز به یک کلاس اختصاص داده شده است.
  • هر کلاس به یک پایه تحصیلی اختصاص داده شده است و هر پایه تحصیلی چند کلاس دارد.
  • هر پایه تحصیلی چندین درس دارد و هر درس به یک پایه تحصیلی اختصاص داده شده است.
  • هر تکلیف به چندین دانش آموزان اختصاص داده شده و هر دانش آموز نیز چند تکلیف مختص خود دارد.
  • هر نمره به یک درس و یک دانش آموز اختصاص داده شده است. همچنین هر دانش آموز چند نمره و هر درس نیز چند نمره دارد.

مثال

یک نمونه از اجرای این مدل ها شکل زیر است:

$grade = Grade::create();
$classroom = $grade->classrooms()->create();
$teacher = $classroom->teacher()->create();
PHP
  • برای راهنمایی بیشتر می توانید از ستون های ارتباطی موجود در migration ها استفاده کنید.

نکات

  • شما تنها مجاز به تغییر فایل های App/Assignment.php , App/Classroom.php , App/Course.php , App/Grade.php , App/Score.php , App/Student.php , App/Teacher.php هستید، بقیه‌ی تغییرات نادیده گرفته می‌شوند.
  • از migration ها برای فهمیدن آن‌چه باید بنویسید کمک بگیرید.
  • پس از اعمال تغییرات کل پروژه به غیر از پوشه‌ی vendor را Zip کرده و ارسال کنید.
  • نام فایل Zip اهمیتی ندارد.

ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.