DDD - Сбор объекта значения в совокупности приводит к несоответствию импеданса БД
Рассмотрим случай Order/Orderline, где Orderline является коллекцией VO, в этом случае для сохранения Orderline в БД требуется отдельная таблица со своим собственным набором строк, так как в качестве VO у нее не может быть идентификатора в соответствии с DDD, как это можно сделать Несоответствие должно быть устранено, учитывая, что ORM используется для постоянства. (обоснованность примера субъективна, но не может придумать лучшего в этот час пик, извините за это)
1 ответ
OrderLine
таблица, безусловно, не требует идентификатора, так как она должна быть связана только с соответствующей Order
, OrderId
будет включен в OrderLine
таблица, но не будет включена в OrderLine
VO, поскольку это было бы ненужным, так как ассоциация содержится в Order
AR.
Если ваша база данных настаивает на первичном ключе, например, вы можете найти что-то вроде OrderId
а также ProductId
или какая-то другая комбинация, которая имеет смысл. Даже синтетический ключ, такой как UniqueIdentifier
будет в порядке, так как это поле тоже будет исключено из домена.