我想为每笔货币交易创建一个模型关联。
每个用户都有很多(钱)帐户。 每个帐户都有很多交易。 每个用户通过帐户进行多次交易。 对于每笔交易,它将属于两个账户(基本上很多账户之间的转账,如借方到贷方)。 基本上,我希望每个事务在两个具有不同值的帐户之间共享,仅用于某些事务列。
所以,我的目标是,对于每笔交易,都会有一个基本的交易信息(列),例如发生日期,金额,信息,来自,将与相应的两个账户共享(让它们成为账户Alpha)和帐户Beta)。
然后,我希望在各个帐户关联时扩展该基本模型。因此,上述列将在Alpha和Beta之间共享,而其他列(如发布日期和creditOrDebit(类型字符串为"在"或" out"))将不同。例如,如果帐户Alpha将资金转帐到帐户Beta,则creditOrDebit列将为" out"对于Alpha和"在"对于Beta。
我考虑了Polymorphic Association,但它会创建一个完全不同的交易,应该在Alpha和Beta之间共享。
Gist中的代码:https://gist.github.com/Penguinlay/151572404c14f566fe40a0cbb16e0339
答案 0 :(得分:0)
为什么不添加" LineItem" (或类似的)模型。
您的交易has_many line_items
和订单项可能类似于:" transaction_id,account_id,amount"金额为正(贷方)或负(借方)。
然后示例事务看起来像:
交易ID:42
Line_items(都有transaction_id:42)
acct_id amount
23 100
17 -50
42 -30
7 -20