То, что сказал @Алекс, было правильным. Этот ответ состоит из двух частей.
Мне тоже кажется, что дело не необычно . Однако, согласно вашему примеру, если Customer
имеет коллекцию Account
, поддерживает сценарий. Однако в примере Учетная запись НЕ МОЖЕТ существовать без Клиента. . Рассмотрим другой сценарий, в котором элемент коллекции не зависит от Владельца.
Скажем, связь между Owner
и Car
. У владельца много автомобилей, следовательно, one-to-many
отношение между Owner
Entity и Car
Entity. Структура базы данных будет
Owner : [OwnerId, Name...]
Car : [CarId, Name...., OwnerId]
Здесь мы предполагаем, что Автомобиль МОЖЕТ существовать без владельца . В таком состоянии будут записи автомобилей с null
OwnerId. Наличие null
ухудшает информацию. Под ухудшением я подразумеваю, что качество хранимой информации снижается, поскольку есть неизвестные. Приведенная выше структура может быть смоделирована до
Owner : [OwnerId, Name...]
Car : [CarId, Name....]
CarOwner : [OwnerId,CarId]
Таким образом, мы избегаем null
оцененных записей в Car
, и связь между владельцем и автомобилем четко определена.
(как правильно заметил @Alex)
В Hibernate one-to-many
отношение не распознает таблицу соединений. Поэтому мы используем many-to-many
с флагом unique
, установленным в true, чтобы отобразить отношение. Однако, если вы введете таблицу соединений, это излишне увеличит количество соединений.
Надеюсь, это объяснение поможет.