我遇到Oracle数据库问题,我认为这是由数据表示问题导致的。我有一个由七个不同列表组成的层次结构,需要存储这些元素的所有独特潜在组合。我需要存储所有可能的组合,因为我需要将附加信息与它们一起存储。表示数据组合层次结构的Oracle
从历史上看,我们一直在管理四个列表,它来到了几千元的组合。这很好,但需求已经改变,因为他们不愿意这样做,现在我们正在运行七个列表。在我的真实环境中,列表存储20到200个项目。现在令人难以置信的组合总数约为3500亿。
由于我们正在试图与这代表什么的例子有,你可以选择喜欢的列表:
颜色:红,绿,蓝
形状:圆形,方形,三角形
口味:桃子,香蕉,覆盆子
这些将被存储为单独的表在Oracle中一样的颜色,形状,口味等,我们会做的是乘法它们放在一起(通过笛卡儿连接)得到一个爆炸表:Thi这就是我们目前在Oracle中存储的内容。
COLOUR SHAPE FLAVOUR DATA_1 DATA_2
Red Circle Peach -- these hold additional information
Red Circle Banana
Red Circle Raspberry
Red Square Peach
Red Square Banana
...
等等。
我们发现,我们不能在Oracle表中存储数十亿条记录,并有及时对他们进行任何操作。我试图想出不同的方式来存储这些信息,但我的大脑一直在干扰组合的数量。有什么我可以做不同的存储记录?铭记它们都是独特的组合,我们需要将数据与它们一起存储。
感谢您的帮助!
你真的需要存储关于每种可能组合的数据吗?这些3500亿条信息(或700亿美元,如果你每个存储两条信息)在哪里呢?如果你不这样做,并且大部分数据字段实际上都是空的,那么稀疏表示会有多大 - 如果只根据需要存储记录,当数据存在要附加到组合时? – 2013-04-05 14:00:45
@AlexPoole我们不认为我们可以用一个稀疏表示 - 没有数据字段将是空的,用户可以请求任何随意 – Kieran 2013-04-05 14:28:53