Как правильно сделать структуру для данной задачи?
Задача
Пользователь может создать заявку, с несколько документами(Например атестат , личный документ, паспорт ) у документа может быть несколько документов(то есть атестатов много у них одно название атестат, но документов самих несколько ), всё хранится в бд, реализовать на Laravel.
Вопрос
Как бы вы решали данную задачу? Если с пользователем, и самой заявкой всё понятно. То как быть с документами, большой затуп. Какие модели бы вы использовали? Какие бы таблицы создавали?
Базовая таблица "документ" + таблица "свойства документов". Валидация свойств на уровне класса модели. Работа с конкретными документами - через model scope.
Encoders, можно сделать бащовую модель с одной таблицей, а потом создать несколько новых моделей, которые будут "подгруппами" основной таблицы. Например в таблице documents есть колонка type, чтобы различать подтипы (аттестат, справка и т.д.). Добавив скоуп в модель, можно сразу брать из таблицы данные, отфильтрованные по типу документа. Это просто один из вариантов решения)
Одна таблица - documents, все общие свойства
вторая document_types, тип - аттестат, диплом и т.д.
И вопрос как хранить уникальные значения для документов.
вариант 1:
json поле - типо nosql, мускуль и постгрес могут искать и фильтровать по ним
вариант 2:
EAV - это отдельная тема, тут гуглить, читать, разбираться