【问题标题】:shall I use multiple separate tables or one table with multiple partitions in oracle我应该在 oracle 中使用多个单独的表还是一个具有多个分区的表
【发布时间】:2012-02-28 12:23:55
【问题描述】:

我有一个实体叫它Response,另一个实体叫ResponseTypeResponse 实体包含ResponseType
因此,当我构建物理模型时,我对如何实现它感到困惑。

我有两个选择:

  1. 我可以为每个ResponseType 创建一个Response 表。
  2. 我可以创建一个带有ResponseType 列的全局Response 表,并为每个ResponseType 创建一个分区。

请注意,Response 实体对于每个ResponseType 都是相同的。每个ResponseType 都是等价的。

你的想法是什么?

【问题讨论】:

    标签: oracle data-storage database-partitioning


    【解决方案1】:

    我认为没有任何理由创建单独的表。

    您通常会创建一个Response 表、一个ResponseType 表,并在两者之间创建一个外键。类似的东西

    CREATE TABLE ResponseType (
      ResponseTypeId NUMBER PRIMARY KEY,
      <<other columns>>
    );
    
    CREATE TABLE Response (
      ResponseId     NUMBER PRIMARY KEY,
      ResponseTypeId NUMBER REFERENCES ResponseType( ResponseTypeId ),
      <<other columns>>
    );
    

    如果您拥有 Enterprise Edition 并且您还获得了分区选项的许可,并且您的查询在查询 Response 表时将始终指定 ResponseTypeId,并且通常希望读取特定 @ 的所有 Response 行987654327@ 而不是使用索引,对Response 表进行分区可能会带来性能优势。但这是相当多的if 语句。

    【讨论】:

      猜你喜欢
      • 2021-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多