我试图在rails中建立一个(非常)简单的股票交易模拟器来玩3.1,并尝试学习更多关于web后端的东西,而不是我通常坐着的UX。
所以让我们说你有
Users (has many transactions)
Transactions (belongs to users, companies)
Companies (has many transactions)因此,用户购买了一家公司的一些股票,这就创建了一个交易记录,其中的quantity列反映了为该特定交易购买的股票数量、当时的股价,以及一个状态列,该列表示是否买卖了东西。(为了简单起见,而且由于这是一个学习练习,让我们假设一个事务只包含一个买卖事件)
因此,让我们说,用户,出于某种原因,买卖同一家公司的各种奇怪数量。
最后,他将得到多个事务行,必须对这些行进行查询和求和,以便确定
每一家公司
sells)
所以我的问题是,这种型号对这种用途是正确的吗?例如,如果我想编写一个显示用户拥有什么的页面,这似乎很麻烦。这意味着运行各种金额,以确定是否拥有,以及拥有的数额。但也许这正是这些事情应该做的方式吗?还是有更好的方法?
最好只维护一个表示“所有权”的事务,并更新每个公司“拥有”的列,然后在第二个transaction_history表中记录单独的事务,该表被分离并加入到事务中?
发布于 2011-10-14 01:30:52
我觉得你的模型结构很好。如果您想简化用户当前的所有权,那么可以添加一个额外的表来有效地缓存这些信息。也许添加一个OwnedShares模型,它引用用户、公司和拥有的股份数量。
然后,您可以在事务模型中使用"after_save“回调来更新这些OwnedShares。
使用这种结构,为用户报告当前所有权将很容易,但您不会丢失事务历史记录。
https://stackoverflow.com/questions/7762161
复制相似问题