Сущность или значение объекта?

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

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

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

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

Спасибо

1 ответ

Решение

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

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

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