我写了一个处理私人股票市场的小应用程序。我在一个表中(为了简化问题),所有的数据存储与下列:在应用程序中拆分私人股票市场数据包的问题
ID,TRANSACTIONTYPE,数量,编号自,数字太多,客户编号,日期
1,买,100,AB1000, AB1099,5,2009-01-30
2,出售,100,AB1000,AB1099,5,2010-01-01
3,购买,40,AB500,AB539,5,2010-01-01
它就像所有人一样。当我的用户想要获取信息时,客户有什么程序总结了他在Buy
和Sell
上做的+,确保号码匹配(在公开市场上没有股票号码,私人有)。到目前为止,我的程序无法部分销售任何东西。例如,如果我以前没有买过股票,我就不能卖出30只股票。所以,即使你的客户可能有40只股票,我只能卖出40只,但不是30只,因为数量不匹配。
我今天问我们是否可以改变它(他们改变了原来的要求),我希望得到一些建议,如果真的这样做的正确方法:
如果客户有100只股票,然后试着只卖30号AB1030 - AB1059我会插入这样的事情在我的表:
ID,TRANSACTIONTYPE,数量,编号自,数字太多,客户端ID
4,分裂,100,AB1000 ,AB1099,5
5,Split +,30 ,AB1000,AB1029,5
6,分割+,30%,AB1030,AB1059,5
7,分割+,40%,AB1060,AB1099,5
8,出售,30%,AB1030,AB1059,5
我甚至不能向用户展示这个Split,以免他/她太多混淆。就像一个补充,我不保留实时数据,我只保留历史记录,如果我想得到current information
,我总是必须重新计算所有内容。我这样实施它,因为他们经常使用旧数据来检查较旧日期的客户的当前状态等。
您的建议是什么?这种方法是好的还是我应该完全重写它。请记住,该系统已经生效,所以我将不得不以某种方式迁移它。而且它也不应该是一个全面的返工,因为我很难得到它的支付,所以没有6个月的时间来解决它。
那么这个小应用程序是100K线长,背后都有一些重(小白)的逻辑。不是那些会做卖/买东西,而是雇员(1-2人)的顾客。现在一切都可以以小包出售,如果你买了100只股票,你可以卖出100只符合它们数量的股票,或者如果它没有被封锁。所以他们唯一想改变的就是他们可以按照自己的意愿拆分这100只股票,这样他们就可以从这100只股票中拿出30只股票,然后把它卖掉。他们会选择他们想要出售的金额和数量。所以在某些情况下,它会匹配购买的早期数据包 – MadBoy 2010-03-22 18:28:49
,有时它不会,然后我将不得不拆分这100个股票,以便每次我知道客户是什么,以及他没有。数字是关键。我知道我可以用数量工作,这会更容易,但数字必须留下来,他们将一个数据包与另一个数据包区分开来。现在它的工作原理是我展示了客户拥有和选择的产品清单并将其出售。他们想要的是我猜他们选择了一个包,并且他们卖掉了一半,而且一半只能保留适当的数字。 – MadBoy 2010-03-22 18:30:00
好的,但我还是不明白问题的部分是什么,或者只是谈论如何解决问题?如果(stock.amount> newSold.amount)返回OutOfStockException,是否需要帮助如何更改对象/表中的数字?或者它是一个SQL问题,你不能分割股票? 或者是 – Niike2 2010-03-22 18:37:39