我有这三个表:
1:
2:
Sell
并且Cheque
依赖于FinancialTransaction
。正如您在第一张图片中看到的那样,我已经放入FinancialTransactionId
了从属表,但我不确定它是否正确,因为据我所知,应该将 FK 放入从属表中。反之,如果我把ByeId
andChequeId
放在FinancialTransaction
(图2)中,总是有一个是空的,不知道哪种方法是对的?此外,原则表可能不止两个。
我有这三个表:
1:
2:
Sell
并且Cheque
依赖于FinancialTransaction
。正如您在第一张图片中看到的那样,我已经放入FinancialTransactionId
了从属表,但我不确定它是否正确,因为据我所知,应该将 FK 放入从属表中。反之,如果我把ByeId
andChequeId
放在FinancialTransaction
(图2)中,总是有一个是空的,不知道哪种方法是对的?此外,原则表可能不止两个。
第一种方法更好,似乎没有缺点。
但是,如果您只想保持该顺序的依赖关系,那么更好的方法可能是组合 check 和 sell 表,如果它们都具有相同的列,并添加另一个布尔列IsCheque,它将根据付款设置为 true 或 false模式。
编辑:
其他方法可能是采用布尔列IsPaymenyCheque和另一列作为PayModeID。根据IsPaymenyCheque ,请参阅带有PayModeID的任一表。
这会使您的查询复杂化,因为您每次都必须检查布尔值。您还必须删除外键约束。
第二种解决方案更好,因为它强制执行金融交易最多可以有 1 个支票和 1 个卖出的规则。