Давайте обсудим это с какой-то реальной бизнес-областью, тогда ответы будут иметь смысл.
Итак, первый пример:
X представляет объект заказа в сервисе заказов Amazon, Y обозначает клиента в отделе обслуживания клиентов.
Теперь при получении заказа от Amazon из службы заказа вы также хотите показать некоторые основные сведения о клиенте и ссылку на объект Customer, чтобы перейти на страницу сведений о клиенте.
В этом случае я хотел бы при создании заказа скопировать некоторые основные атрибуты клиента в объекте заказа (customerName, customerArea).
Также сохраните customerId, customerType. А поскольку API для извлечения клиента является Public и также доступен различным внутренним службам, Order Service выполнит обнаружение службы и создаст URL и вызов. В этих случаях, как правило, служба поддержки клиентов не прекращает поддерживать старый способ (даже если он строит новый).
Так что хранение только id - это решение.
Случай 2:
Amazon Order Entity хочет сохранить детали доставки, а партнер по доставке - это какое-то стороннее юридическое лицо, такое как DHL, тогда, если DHL предоставит URL для получения обновлений доставки заказа, в этих случаях я просто сохраню URL.
Как правило, я предпочитаю хранить идентификатор и тип услуги, а также некоторые базовые сведения, чтобы обеспечить хороший опыт работы с клиентами, а также избегать использования одного дополнительного API-интерфейса службы для получения базовой информации, такой как имя клиента.
Хранение прямого URL имеет смысл, когда это сторонний URL.
Также, если вы можете привести определенный пример вашего бизнес-кейса, как это, мы можем обсудить лучше