在为销售系统设计数据库时,我有两个问题。
是否可以有一个隔离的表,这意味着表与所有其他表没有关系?
如何解决以下问题:
表:SalesOrderDetail,表:InventoryTrans
SalesOrderDetail
中的每条记录都会插入InventoryTrans
,但InventoryTrans
中的所有记录都不会来自SalesOrderDetail
。因为其他表也可以将记录插入InventoryTrans
。
因此,我想向SalesOrderDetailID
表添加引用列InventoryTrans
,但不指定FK约束。因为如果记录不是来自SalesOrderDetail
表,那么SalesOrderDetailID
应该为空。
这是正确的设计吗?
答案 0 :(得分:0)
是的,您可以拥有一个没有对其他表的外键引用的表。存储各种配置设置的表可能是最常见的,但还有其他一些。
InventoryTrans.SalesOrderDetailID列可以是可以为空的外键引用。但是你没有提供足够的细节来判断这是否是一个好的设计决定。做一个有根据的猜测,我想说可能不是。 (其他类型的交易可能会受益于外键引用。)