В системе используются:
- Аутентификация Laravel Breeze
- Архитектура MVC
- База данных MySQL
- Шаблоны блейдов
Модули:
- Модуль входа
- Управление книгами
- Управление займами и возвратами
- Управление штрафами
Функции
Управление книгами
- Добавление/редактирование/удаление книг
- Магазин:
название
- автор
- Категория
- Доступные экземпляры
Модуль заимствования
- Выбрать участника
- Выбрать книгу
- Дата и срок кредита
- Дата возврата
- Статус кредита (заимствован, возвращен, просрочен)
Модуль штрафов
- Рассчитать штрафы за просроченные книги
- Отметить штрафы как оплаченные/неоплаченные
Поэтому у меня вопрос: какая структура базы данных лучше всего подходит для таблиц книг, займов, штрафов и участников. Я также не уверен в правильных отношениях Eloquent между книгой и заимствованием, членом и заимствованием, а также заимствованием и штрафом. Что касается функции штрафа, каков рекомендуемый способ вычисления просроченных штрафов в Laravel, если логика будет размещена внутри контроллера, средства доступа к модели или отдельного класса обслуживания? Кроме того, должен ли статус займа автоматически обновляться по истечении срока погашения? Наконец, лучше ли хранить значение Available_copies непосредственно в таблице Books или оно должно вычисляться динамически на основе заимствований записей?