孤立表和外键约束

时间:2014-02-09 16:08:50

标签: sql-server database database-design

在为销售系统设计数据库时,我有两个问题。

  1. 是否可以有一个隔离的表,这意味着表与所有其他表没有关系?

  2. 如何解决以下问题:

    表:SalesOrderDetail,表:InventoryTrans

    SalesOrderDetail中的每条记录都会插入InventoryTrans,但InventoryTrans中的所有记录都不会来自SalesOrderDetail。因为其他表也可以将记录插入InventoryTrans

  3. 因此,我想向SalesOrderDetailID表添加引用列InventoryTrans,但不指定FK约束。因为如果记录不是来自SalesOrderDetail表,那么SalesOrderDetailID应该为空。

    这是正确的设计吗?

1 个答案:

答案 0 :(得分:0)

是的,您可以拥有一个没有对其他表的外键引用的表。存储各种配置设置的表可能是最常见的,但还有其他一些。

InventoryTrans.SalesOrderDetailID列可以是可以为空的外键引用。但是你没有提供足够的细节来判断这是否是一个好的设计决定。做一个有根据的猜测,我想说可能不是。 (其他类型的交易可能会受益于外键引用。)