1

我有这三个表:

1:

在此处输入图像描述

2:

在此处输入图像描述

Sell并且Cheque依赖于FinancialTransaction。正如您在第一张图片中看到的那样,我已经放入FinancialTransactionId了从属表,但我不确定它是否正确,因为据我所知,应该将 FK 放入从属表中。反之,如果我把ByeIdandChequeId放在FinancialTransaction(图2)中,总是有一个是空的,不知道哪种方法是对的?此外,原则表可能不止两个。

4

2 回答 2

1

第一种方法更好,似乎没有缺点。

但是,如果您只想保持该顺序的依赖关系,那么更好的方法可能是组合 check 和 sell 表,如果它们都具有相同的列,并添加另一个布尔列IsCheque,它将根据付款设置为 true 或 false模式。

编辑:

其他方法可能是采用布尔列IsPaymenyCheque和另一列作为PayModeID。根据IsPaymenyCheque ,请参阅带有PayModeID的任一表。

这会使您的查询复杂化,因为您每次都必须检查布尔值。您还必须删除外键约束。

于 2013-07-06T14:11:46.087 回答
0

第二种解决方案更好,因为它强制执行金融交易最多可以有 1 个支票和 1 个卖出的规则。

于 2013-07-06T12:58:37.603 回答