Oracle如何实现1000列?

时间:2016-07-22 22:15:33

标签: sql sql-server database oracle

我正在尝试复制salesforce在其数据库架构中所做的工作。基本上,它们有一个带有一千个varchar(max)列的oracle表。它们将所有客户数据存储在此表中。我试图用SQL Server完成同样的事情。但是,我只能在SQL Server中获取308 varchar(max)字段。我想知道Oracle如何能够实现1000列限制。我想在sql server中做同样的事情。

2 个答案:

答案 0 :(得分:1)

VARCHAR(MAX)字段可以容纳GB的信息......但是最大行大小是8060字节,那么它如何加起来?它不会在行中存储2GB,而是存储一个24字节的指针。这些指针累计超过行大小限制。

您可以将表格拆分为多个列数较少的表格,但我认为没有办法超越此限制。

答案 1 :(得分:1)

恕我直言,千柱似乎比它的价值更麻烦。也许你可以采取更规范化的方法。

例如,我有一个Object Def表,它链接到Extended Properties表。 XP表链接到OD,并具有XP-ITEM,XP-VALUE,XP-LM-UTC和XP-LM-Usr字段。该结构允许任何对象具有任何数量的扩展属性......标准和/或非标准。

下图可能会为您提供更好的可视化效果。

enter image description here

只是几个笔记:

1)这不适用于大量交易数据,即每日贷款余额

2)每个商品ID都可以链接回一个对象,该对象具有自己的属性,如选择列表,Excel格式等​​。

3)一旦可以看到编辑的整个历史(谁,什么,何时)