我正在开发一些asp.net应用程序,我一直在关注业务。
假设我们有一个人,他可以打开两种类型的帐户,每个帐户都有一些交易记录。人员表有一些主键说PPK,而客户表有一些PK作为PIN。
我的问题是如何在数据库中解决/呈现这种情况,人表与客户表的关系是1:2,因为没有人可以拥有两个以上的帐户。那个交易表怎么样?包含某些特定帐户的所有交易历史记录?我应该制作两个交易表(这是一个坏主意,因为账户类型超过交易表超过)。
我可以将它们的关系建立为1:*(然后我可能需要另一个表。它保存两个表的Fk。)
或者可以将pin作为唯一键,并且总是打开数据库以检查帐户的限制(即两个)。
我真的需要一些建议。
欢迎所有建议。
谢谢!
P.S:如果你不明白这个问题,请在报告之前问我!答案 0 :(得分:0)
好的,你有一个人员表和一个帐户表,两者之间有一个外键关系,即1个人到多个帐户。然后,您有一个与帐户表中的帐户ID相关的交易表,该帐户ID也是一个帐户到多个交易。
现在要强制执行仅允许两个帐户的限制,因为您需要一个触发器来检查何时插入或更新记录以确保该人当前不超过一个其他记录。
答案 1 :(得分:0)
您可以这样做:
或类似的东西:
第一个模型允许通过更改CHECK来添加更多帐户(如果需求在将来发生变化),而第二个模型则需要在这种情况下添加另一个列。
注意:以上假设两种帐户类型在结构上完全相同,因此它们适合"进入同一张桌子。如果情况并非如此,您可以使用继承。