【问题标题】:Unique constraint on 42 Columns? Why should or shouldn't I consider doing this? [closed]42列的唯一约束?为什么我应该或不应该考虑这样做? [关闭]
【发布时间】:2015-12-07 19:56:07
【问题描述】:

理论:

我的任务是建立一个数据库,以包含用于制造目的的指南。要返回的指南基于 42 个输入值,并且都特定于特定的输入组合。

我计划为所有这些列编制索引,并意识到如果我必须重建或重新编制索引,这将是资源密集型的。

  • 我没有考虑哪些设计方法?
  • 在 42 列上创建唯一约束的方法存在哪些潜在问题?
  • 有没有人对这种设计有任何经验或见解?

感谢您的帮助!

【问题讨论】:

  • 所有 42 列是否与每种“事物”都有密切关系? (我怀疑)
  • 我计划索引所有这些列 大多数 DBMS 将自动在具有唯一约束的列上添加索引。
  • 我会有一个“唯一键”列,它可以是对象的 json 表示形式、精心构造的属性散列或其他内容,并在该列上具有唯一索引。然后,围绕如何访问数据创建索引,该索引可能不包括所有 40 列。
  • 我建议阅读数据库规范化的主题,然后提出一个问题。这是维基百科开始en.wikipedia.org/wiki/Database_normalization
  • 我曾在几家制造工厂工作过,最终目标通常是在不同的阶段,如预生产、生产和后期生产。那么正在制造的小部件可能有一个类型......看看一个例子会很好。

标签: sql sql-server constraints


【解决方案1】:

不这样做的一个很好的理由是 SQL Server 不支持它:

最多可以将 32 列组合成一个复合索引键。

(文档here)。

您似乎不太可能真的需要具有 42 列的单个复合索引。但是,即使是可取的,你也不能拥有一个。

【讨论】:

  • 嗯,可以使用另一台服务器...
【解决方案2】:
  1. 仅将索引放在将要搜索/排序的列上。

  2. 添加简单的自增索引。

【讨论】:

    猜你喜欢
    • 2022-01-24
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 2014-11-09
    相关资源
    最近更新 更多