0

我必须在 oracle 数据库中存储多个可变长度的文本字段。我需要将它们定义为同一个表的列,以便能够在查询时对结果进行排序。

我不知道字段内容的最大大小,其中大多数将少于 100 个字符,但可能有数千个字符。此外,字段的数量会发生动态变化。

我正在考虑定义一个包含多个 NCLOB 列的表,它允许我在其中存储任何内容(非常短和非常长的文本)但我想知道这是否是正确的设计。

概括:

  • 可变数量的字段(同一对象的元数据)
  • 内容的可变长度
  • 我需要订购结果

谢谢

吉隆坡

4

1 回答 1

1

当您需要可变数量的字段时,最好将表拆分为父级和子级。然后你可以有效地拥有任意数量的字段。您可以添加订单列来存储订购信息以订购结果。您可以通过连接两个表并使用order by子句对结果进行排序来查询。您还可以添加外键约束以确保关系和数据完整性。

在内容长度可变的情况下,您可以使用 varchar2(或 nvarchar2)来存储文本日期。Varchar2 最多可容纳 4000 个字节的字符。如果你知道内容的最大长度可以超过 4000 字节,你应该使用 CLOB(或 NCLOB)。

于 2012-07-18T08:27:42.813 回答