Сущность или значение объекта? - PullRequest
0 голосов
/ 14 марта 2012

Я работаю над моделью данных для информации о маршрутизации SIP. Возьмем для примера телефонный номер 1-212-123456. Два поставщика услуг A и B имеют информацию о маршрутизации (например, IP-адреса) для установления сеанса SIP на этот телефонный номер.

Таким образом, в моей модели у меня есть сущность с именем TelephoneNumber . Мой вопрос: имеет ли смысл определять элемент TelephoneNumber как объект значения?

Во-первых, телефонный номер существует только в контексте одного или нескольких поставщиков услуг. Если ни один поставщик услуг не знает информацию о маршрутизации для этого телефонного номера, то нет причин для его существования.

Во-вторых, если TelephoneNumber является ценным объектом, будет два экземпляра одного и того же телефонного номера, по одному для каждого поставщика услуг. В этом случае первичный ключ объекта будет включать внешний ключ, ссылающийся на ServiceProvider . В этом случае я вижу, что есть некоторое дублирование данных.

Спасибо

1 Ответ

1 голос
/ 26 марта 2012

Объект-значение не имеет идентичности, его можно идентифицировать по его атрибутам.Если два экземпляра вашего класса «TelehponeNumber» определены как равные, если они содержат одинаковое число, они могут рассматриваться как объекты-значения, но вы должны быть очень формальными в своем подходе к объектам-значениям.Если вы определяете «TelephoneNumber» как объект значения, вы не вставляете его в свою собственную таблицу и не присваиваете ему идентификатор (без первичного / внешнего ключа mumbo jumbo), вы помещаете его как член другой сущности (маршрутизацияинформация, кажется, правильное место, если я правильно понимаю ваш домен).Вы действительно не заботитесь о том, сколько существует экземпляров объектов стоимости, поскольку они просто являются частью другого объекта.

Типичными объектами стоимости являются номера телефонов, адреса электронной почты, деньги, номер социального страхования и т. Д.

...