我正在建立一个银行系统。当您从一个帐户到另一个帐户进行交易时,我将在我的交易表中创建行/记录。但我需要将它们连接在一起,所以当我查看交易时,我可以看到双方。我的问题是我应该创建另一个记录此表的表,还是应该添加一个包含某种TransactionHeadID的列?或者还有第三种更好的选择吗?
答案 0 :(得分:0)
您可以创建一个包含交易详细信息的表,senderId和receiverId。 senderId和receieverId将是User表的外键。
答案 1 :(得分:0)
一个想法是添加字段"来自"和"到"到你的交易表。然后,例如,如果您将A中的100 $移至B中的40 $和C中的60 $,则表格将如下所示:
Account | Value | From | To
---------+-------+------+------
A | -40 | NULL | B
A | -60 | NULL | C
B | 40 | A | NULL
C | 60 | A | NULL
但是,我认为如果你使用两个表会更好:一个事务表包含真正的来自和来自帐户的交易信息,如商店,日期等和一些TransactionID,另一个表调用例如TransactionBalanceEvent有一个TransactionID外键,账号,余额。然后你会:
交易表
TranID | Date
-------+----------
1 | some_date
TransactionBalanceEvent表
TranID|Account|Balance
------+-------+-------
1 | A| -100
1 | B| 40
1 | C| 60