SQL 数据库设计:'accounts' 和 'transactions' 表之间的多对多关系,这样一个事务可以有 'from' 和 'to'

SQL database design: many to many relationship between 'accounts' and 'transactions' tables such that a transaction can have 'from' and 'to'

我正在尝试在两个表之间创建多对多关系:'accounts' 和 'transactions',但有一个问题。每笔交易都必须与两个账户相关,但每个账户必须指定为发送方或接收方。

同样,每个账户都应该与他们所涉及的所有交易相关联。是否有解决此问题的最佳实践数据库设计模式?如果有帮助,我正在将 Sequelize 与 Postgres 结合使用。

例如:

帐户

编号 |姓名 | transactions_sent (Transactions.id) | transactions_received (Transactions.id)

交易

编号 |备注 |发件人 (Accounts.id) |收件人 (Accounts.id)

我会通过创建一个额外的 AccountsTransactions table 和来自 Accounts and Transactions tables 的复合键并添加一个新列 send_receive_indicator 或 transaction_type( S - Send/R - Receive) on Transactions table(假设每笔交易都是发送或接收类型的交易)。这样您就可以通过在查询中引入新的 transaction_type 列来控制您在该 AccountsTransactions 上的 many-to-many 关系。