Я читаю о DDD, и я узнал, что объект Value неизменен, если вы хотите его изменить, вам нужно будет создать новый. Я только что прочитал информацию о How are Value Objects stored in the database?, он хорошо работает для класса адресов, и я также читаю https://cargotracker.java.net/ и https://gojko.net/2009/09/30/ddd-and-relational-databases-the-value-object-dilemma/. Но я хочу сделать что-то другое.DDD - обновить объект значения в базе данных с FK dependencie
I am working on a billing system , it has 4 tables/classes
TPerson - fields: id_person, name -> <<Entity>>
TMobile - fields: id_mobile, number -> <<Entity>>
TPeriod - fields: id_period, id_person, id_mobile, begin_date, end_date -> <<Value Object>> (I think, because the dates can be change)
TCall - field: id_call, id_period, etc... -> <<Value Object>>
В таблице TCALL есть много записей, если я изменить период записи даты (значение объекта, таблица TPERIOD) создаст еще один период объектов, то id_period изменится (удалить, вставить запись), но внешний ключ в таблице TCall будет нарушена. Как я могу реализовать класс периода? если я реализую как объект значения, он будет неизменным и окажется, что я ничего не смогу изменить.
Спасибо, Fernando
Короткий ответ - если у вас есть (необходимо) идентификаторы (например, 'id_period', id_call' '), то это не объект Value (VO), это объект. Если нужны идентификаторы, чтобы FK тогда попытался создать модель домена, не задумываясь о постоянстве, зависимостях FK, таблицах БД. –