2013-05-13 126 views
1

我想跟蹤個人的信用卡交易(實質上的金額)。而不是每個交易都在數據庫中創建一個新條目,我有什麼辦法可以將一個人的所有交易保存在一行中? 即,如果一個人A購買了Rs.1500,盧比。 2600和盧比。 3200在不同的情況下,我想表項是這個樣子:如何在oracle數據庫中的一行/一列中保存多個值?

A : 1500, 2600, 3200 

此外,有沒有什麼辦法可以只保留一定數量的條目?意思是,對於添加的一個新條目,一個最舊的條目應該被刪除。我正在使用Oracle 10g。 請幫我一把。 謝謝。

+1

我會說這是一個非常糟糕的主意。只是你的問題的第二部分應該可以幫助你理解通過交易獲得成功的容易程度。 – 2013-05-13 06:52:16

+0

但是,將有數百人的交易,我必須保存,每人另外還有數百筆交易。:(我想盡可能減少複雜性。 – Chopsy 2013-05-13 06:56:06

+2

哦,你希望它不那麼複雜。你會發現你的解決方案其實很複雜: – 2013-05-13 06:59:02

回答

4

你能嗎?那麼,您當然可以將該列定義爲VARCHAR2CLOB,然後將逗號分隔的值列表寫入該列。這意味着您每次選擇時都必須編寫代碼來解析數據。並編寫代碼來執行諸如刪除或修改列表中的一個元素。而且你會失去正確的數據輸入的好處。適當的標準化。而且你真的會非常惱火誰將來需要支持你的代碼。特別是當某人在您的逗號分隔字符串列中無意中存儲1000而不是1000的交易值時。

所以你可以,是的。但我無法想象任何情況下,這樣做真的有意義。

創建一個表來存儲交易。爲每個事務創建一個新行。將每筆交易鏈接到特定人員。你會很感激你。

相關問題