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