проблема с несколькими ссылками внешнего ключа - PullRequest
0 голосов
/ 02 декабря 2010

у меня есть 4 таблицы:

1 - tbl_cars

id (PK)
car_name
model
year

2 - tbl_carOwner

id (PK)
carId (FK - reference to tbl_cars)
ownerId (FK - reference to tbl_ownerPersnoal or tbl_ownerCompany or tbl_ownerGov) 
ownerType (to make a differentiation about owner) 

3 - tbl_ownerPersonal

id (PK)
name
ic_no
address

4 - tbl_ownerCompany

id (PK)
registration_no
business_type
name
address
fax
mail

5 - tbl_ownerGov

id (PK)
agency_name

Как видите, мне нужно провести различие между владельцем из-за разного поля.

Как связать всю таблицу с mysql и nhibernate?

1 Ответ

1 голос
/ 02 декабря 2010

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

Вам нужно иметь три ключа FK в вашей tbl_carOwner

ownerIdPersonal  (FK to tbl_ownerPersonal)
ownerIdCompany   (FK to tbl_ownerCompany)
ownerIdGov       (FK to tbl_ownerGov)

и желательно, чтобы только один из этих ключей был действительным (NOT NULL) в любой момент времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...