Вы спрашиваете, возможно ли это создать или нужно ли это создавать?
Во-первых, это возможно:
Create Table Vessel
(
VesselId uniqueidentifier not null primary key
, MainHullId uniqueidentifier not null
, PortHullId uniqueidentifier not null
, StarboardHullId uniqueidentifier not null
, ...
, Constraint FK_Vessel_Hull_Main
Foreign Key ( MainHullId )
References Hull( HullId )
, Constraint FK_Vessel_Hull_Port
Foreign Key ( PortHullId )
References Hull( HullId )
, Constraint FK_Vessel_Hull_Startboard
Foreign Key ( StarboardHullId )
References Hull( HullId )
, Constraint UC_Vessal_MainHullId Unique ( MainHullId )
, Constraint UC_Vessal_PortHullId Unique ( PortHullId )
, Constraint UC_Vessal_StarboardHullId Unique ( StarboardHullId )
)
Отношение 1: 1 создается, когда у вас есть дочерняя таблица с внешним ключом к родительской таблице, и внешний ключ должен быть уникальным.
Теперь, относительно того, будет ли это хороший дизайн, это будет зависеть от проблемной области. Кажется странным иметь судно с тремя различными корпусами, расположенными слева, справа и по центру, но, возможно, я что-то упустил.