Aar*_*ell 25 sql sql-server nhibernate database-design
我正在为客户/订单系统定义一个数据库,其中有两种高度不同类型的客户.因为它们是如此不同,只有一个客户表会非常难看(它充满了空列,因为它们对于一种类型来说毫无意义).
他们的订单格式相同.是否可以CustomerId在我的Order表中有一个列,它有两个客户类型的外键?我已经在SQL服务器中进行了设置,它给我创建关系没有问题,但我还没有尝试插入任何数据.
另外,我打算使用nHibernate作为ORM,通过这样的关系可以引入任何问题吗?
Guf*_*ffa 25
不,您不能将单个字段作为两个不同表的外键.你怎么知道在哪里寻找钥匙?
你至少需要一个字段来告诉它是什么类型的用户,或两个单独的外键.
您还可以将所有用户通用的信息放在一个表中,并为特定于用户类型的信息设置单独的表,以便您拥有一个用户ID为主键的表.