2013-05-13 129 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的交易值时。

所以你可以,是的。但我无法想象任何情况下,这样做真的有意义。

创建一个表来存储交易。为每个事务创建一个新行。将每笔交易链接到特定人员。你会很感激你。

相关问题