Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL最佳实践,一个小的不可更改的数据集是否值得为其创建一个新表?_Sql_Sql Server - Fatal编程技术网

SQL最佳实践,一个小的不可更改的数据集是否值得为其创建一个新表?

SQL最佳实践,一个小的不可更改的数据集是否值得为其创建一个新表?,sql,sql-server,Sql,Sql Server,在这种情况下,基于数据集值(内容列)永远不会更改这一事实做出决策变得很棘手。在第一个表中,即使字符串文本将被反复重复,创建一个新表(此应用程序专用)并依赖联接,这真的值得吗?如果是或否,原因是什么 我在过去多次经历过这种情况,并且总是选择分解表。然而,我仍然不完全相信,所以决定最后问 图书表格选项1: 图书表格选项2: 从简单的角度来看,选项1在您第一次看到它时是最简单的。但我认为这在最小的审查下是站不住脚的 选择2是正确的方法。为什么? 这是标准规范化 通过使用适当大小的外键,可以最大限度

在这种情况下,基于数据集值(内容列)永远不会更改这一事实做出决策变得很棘手。在第一个表中,即使字符串文本将被反复重复,创建一个新表(此应用程序专用)并依赖联接,这真的值得吗?如果是或否,原因是什么

我在过去多次经历过这种情况,并且总是选择分解表。然而,我仍然不完全相信,所以决定最后问

图书表格选项1

图书表格选项2


从简单的角度来看,选项1在您第一次看到它时是最简单的。但我认为这在最小的审查下是站不住脚的

选择2是正确的方法。为什么?

  • 这是标准规范化
  • 通过使用适当大小的外键,可以最大限度地减少数据页占用的内存量,并使索引更小。这允许在内存中进行更多的数据缓存
  • 如果有人想重新命名封面怎么办?在大型数据集中,选项2显然更优越

  • 至于总是让表连接的问题。。。视图就是这样做的。写一个视图,不要担心底层的数据结构。

    从简单的角度来看,选项1在您第一次看到它时是最简单的。但我认为这在最小的审查下是站不住脚的

    选择2是正确的方法。为什么?

  • 这是标准规范化
  • 通过使用适当大小的外键,可以最大限度地减少数据页占用的内存量,并使索引更小。这允许在内存中进行更多的数据缓存
  • 如果有人想重新命名封面怎么办?在大型数据集中,选项2显然更优越

  • 至于总是让表连接的问题。。。视图就是这样做的。写一个视图,不要担心底层的数据结构。

    可能想将其发布到dba stackexchange,但这是一个很好的问题,通常在OLTP中会使用第二个,但如果这是数据仓库维度,选项1非常常见。可能想将其发布到dba stackexchange,但这是一个很好的问题通常在OLTP中使用第二个选项,但如果这是数据仓库维度,则选项1非常常见。