我正在尝试在rails中模拟一个(非常)简单的股票交易模拟器以与3.1一起玩,并尝试更多地了解网络后端内容,而不是我通常坐的用户体验。
所以我们说你已经
了Users (has many transactions)
Transactions (belongs to users, companies)
Companies (has many transactions)
因此,用户购买公司中的一些股票,并创建一个交易记录,其数量列反映了为该特定交易购买的股票数量,当时的股价以及指示是否为事物的状态列被买或卖。 (为了简单起见,因为这是一个学习练习,我们假设1个交易只包含一个买入或卖出事件)
因此,假设用户出于某种原因购买和销售同一家公司的各种奇怪数量。
他最终会得到多个交易行,必须对其进行查询和求和才能弄明白
每个公司
所以我的问题是,这种模式的这种模式是否正确?例如,如果我想写一个指示用户拥有内容的页面,这似乎很麻烦。它意味着运行各种总和以确定是否拥有和拥有金额。但也许这就是应该如何做这些事情?或者有更好的方法吗?
仅维护一个代表“所有权”的交易,并为每个公司“拥有”更新其中的列,然后在第二个transaction_history表中记录单个交易,并将其分离并加入到交易中,会更好吗? / p>
答案 0 :(得分:0)
我认为你的模型结构很好。如果要简化用户的当前所有权,则可以添加其他表以有效地缓存此信息。也许添加引用用户,公司和拥有的股份数量的OwnedShares模型。
然后,您可以在事务模型中使用“after_save”回调来更新这些OwnedShares。
使用此结构,报告用户的当前所有权很容易,但您不会丢失交易历史记录。