@Pagliaccio
Внедряю CRM

Как хранить и обрабатывать похожие сущности (например, плановую и фактическую транзакции)?

Есть две сущности: плановая и фактическая транзакция, у них все основные поля совпадают (дата, сумма, счёт, контрагент, теги), но у плановой транзакции могут быть ещё дополнительные параметры - регулярность.
Вариантов реализации мне видится два:
1. Общая таблица транзакций + поле, обозначающее тип транзакции.
В этом случае экономия на моделях, контроллере, но из минусов - необходимо всегда помнить о двух сущностях, с которыми идёт работа.
Специфические для плановой транзакции поля - в отдельную таблицу со связью один-к-одному.
2. Для каждой сущности свои таблица + MVC
Из плюсов - можно настраивать каждую сущность как угодно
Из минусов - придётся дублировать похожий функционал.

Я пока склоняюсь к первому варианту. Подскажите, пожалуйста, у кого какой опыт?
  • Вопрос задан
  • 204 просмотра
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Три таблицы и три модели. Одна хранит все общности. Две хранят различия. Никогда не дублируйте в базе данные в разных таблицах.
Либо 1 таблица и 2 модели.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@matperez
Если вся разница между транзакциями в том, что некоторые из них могут повторяться, то нужно ли вообще знать самой транзакции об этом? Я бы завел просто таблицу с транзакциями и отдельно хранил бы где-то информацию по их повторяемости.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы