DDD - Сбор объекта значения в совокупности приводит к несоответствию импеданса БД

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

1 ответ

Решение

OrderLine таблица, безусловно, не требует идентификатора, так как она должна быть связана только с соответствующей Order, OrderId будет включен в OrderLine таблица, но не будет включена в OrderLine VO, поскольку это было бы ненужным, так как ассоциация содержится в Order AR.

Если ваша база данных настаивает на первичном ключе, например, вы можете найти что-то вроде OrderId а также ProductId или какая-то другая комбинация, которая имеет смысл. Даже синтетический ключ, такой как UniqueIdentifier будет в порядке, так как это поле тоже будет исключено из домена.

Другие вопросы по тегам