admin

多个外键到单个列

sql

我正在为客户/订单系统定义一个数据库,其中有两种高度不同的客户类型。因为它们是如此不同,所以只有一个客户表会非常丑陋(因为空列对于一种类型是毫无意义的,所以充满了空列)。

他们的订单虽然格式相同。CustomerId我的订单表中是否可以有一列同时具有两种客户类型的外键?我已经在SQL Server中进行了设置, 创建
关系没有问题,但是我还没有尝试插入任何数据。

另外,我正在计划将nHibernate用作ORM,通过进行这样的关系是否会引入任何问题?


阅读 151

收藏
2021-05-10

共1个答案

admin

不,您不能将单个字段作为指向两个不同表的外键。您如何知道在哪里寻找钥匙?

您至少需要一个字段来告诉用户类型,或者两个单独的外键。

您还可以将所有用户共有的信息放在一个表中,并为用户类型专用的信息有单独的表,这样您就可以拥有一个以用户ID作为主键的表。

2021-05-10