覆盖列设计最佳实践

时间:2014-09-03 17:23:38

标签: sql sql-server sql-server-2008 database-design

我有以下表格:

dbo.Order
ID SourceLinkID OverrideQueueID

dbo.SourceLink
ID SourceInputID SourceOutputID

dbo.QueueSourceLink
ID QueueID SourceLinkID

dbo.Queue
ID

通常我们会从dbo.Order到dbo.QueueSourceLink获取订单队列。允许用户通过在dbo.Order表的OverrideQueueID中保存QueueID来覆盖此队列。这基本上使我必须在我的所有必须获取订单的QueueID的查询上执行COALESCE或UNION ALL。

我正在寻找有关重新设计此表的建议,或更好的方法来处理这个问题。我不能将QueueID放在dbo.Order表中,因为用户可以随时将SourceLinkID移动到不同的队列,所以每次发生这种情况时我都必须更新dbo.Order表。一旦dbo.Order被覆盖,它就会一直被覆盖,这就是最后的队列。

0 个答案:

没有答案