В transaction хранится order_id и amount. Но потом появилась еще одна сущность super_order, информацию об оплате которого тоже хотелось бы хранить в transaction. Но тогда придется order_id в transaction заменить на какое-нибудь jsonb поле { order_id: 12123 } либо { super_order_id: 123123 }. Но нельзя будет внешний ключ построить. Либо можно создать super_transaction, в которой будут почти все поля transaction. И не хочется копипастить. Как лучше сделать?
Почему не хотите просто добавить transaction.super_order_id?
> Но потом появилась еще одна сущность super_order А чем она отличается от "order"? Может, с этой стороны посмотреть на задачу?
Я такое с помощью полиморфных связей решал, то есть 1 поле под id сущностей, и 1 под название (имя таблицы или класса ORM), из минусов, то что проверка связей для внешних ключей на уровне приложения (уникальность на уровне базы)
Обсуждают сегодня