我寫了一個處理私人股票市場的小應用程序。我在一個表中(爲了簡化問題),所有的數據存儲與下列:在應用程序中拆分私人股票市場數據包的問題
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