Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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,我的数据库中有一个很大的表(50列,可能达到100000000行)。 现在我的主键是8列 最好设置1个主键(自动编号)并添加列唯一约束?我会投票结束你的问题,因为它太宽泛了。然而,你似乎是新来的网站,只是关闭问题不会有帮助 数据库的结构应该由数据的使用方式决定。您还没有指定如何处理数据,因此不可能说一种方法是“更好”还是“更差”。例如,人们可以判断结构是规范化的还是非规范化的。但每种方法都适用于不同的情况 也就是说,我非常倾向于在所有表中使用自动递增(“identity”)主键。这在许多情况下都

我的数据库中有一个很大的表(50列,可能达到100000000行)。 现在我的主键是8列


最好设置1个主键(自动编号)并添加列唯一约束?

我会投票结束你的问题,因为它太宽泛了。然而,你似乎是新来的网站,只是关闭问题不会有帮助

数据库的结构应该由数据的使用方式决定。您还没有指定如何处理数据,因此不可能说一种方法是“更好”还是“更差”。例如,人们可以判断结构是规范化的还是非规范化的。但每种方法都适用于不同的情况

也就是说,我非常倾向于在所有表中使用自动递增(“identity”)主键。这在许多情况下都是有益的。原因有三:

  • 用于了解行的插入顺序(非常接近)
  • 用于创建外键关系
  • 以确保可以唯一标识更新和删除的每一行
但是,这样的列会占用更多的存储空间。而且,单个主键索引比具有多个索引更有效(从空间角度)


这不是对你问题的直接回答,因为答案太模糊了。它至少给了你一些思考问题的参数。

我会投票结束你的问题,因为它太宽泛了。然而,你似乎是新来的网站,只是关闭问题不会有帮助

数据库的结构应该由数据的使用方式决定。您还没有指定如何处理数据,因此不可能说一种方法是“更好”还是“更差”。例如,人们可以判断结构是规范化的还是非规范化的。但每种方法都适用于不同的情况

也就是说,我非常倾向于在所有表中使用自动递增(“identity”)主键。这在许多情况下都是有益的。原因有三:

  • 用于了解行的插入顺序(非常接近)
  • 用于创建外键关系
  • 以确保可以唯一标识更新和删除的每一行
但是,这样的列会占用更多的存储空间。而且,单个主键索引比具有多个索引更有效(从空间角度)


这不是对你问题的直接回答,因为答案太模糊了。它至少为您提供了一些思考问题的参数。

通常,当您不太清楚时,最好遵循DB设计中的标准指南。因为它们适用于绝大多数情况,而且出错的可能性较小

在本例中,这意味着您很可能会从使用自动递增ID列作为聚集主键索引中获益。以及将外键和非聚集索引添加到所有引用列中,以防尚未添加

最后,您甚至可以考虑添加一些专门为最慢的查询设计的自定义(甚至是多列)索引。。。基本上,如果您有一些问题查询,您希望在WHERE子句中对列进行索引

除此之外,您当然应该看到表和数据库通常是规范化的。要了解规范化,最好用谷歌搜索一下。这不是一个复杂或困难的概念,但有一千多个教程比我们这里更适合解释这个概念


通过这样做,你很可能会朝着正确的方向前进。如果它不起作用,那么这里的人们可以使用更多的信息来确定最佳的替代方案。

通常当你不知道更好的方法时,最好遵循DB设计中的标准指南。因为它们适用于绝大多数情况,而且出错的可能性较小

在本例中,这意味着您很可能会从使用自动递增ID列作为聚集主键索引中获益。以及将外键和非聚集索引添加到所有引用列中,以防尚未添加

最后,您甚至可以考虑添加一些专门为最慢的查询设计的自定义(甚至是多列)索引。。。基本上,如果您有一些问题查询,您希望在WHERE子句中对列进行索引

除此之外,您当然应该看到表和数据库通常是规范化的。要了解规范化,最好用谷歌搜索一下。这不是一个复杂或困难的概念,但有一千多个教程比我们这里更适合解释这个概念


通过这样做,你很可能会朝着正确的方向前进。如果它不起作用,那么这里的人们可以利用更多的信息来确定最佳替代方案。

听起来你的表格是一个很好的标准化候选。也就是说,你的问题有点模糊。更多的细节将有助于获得好的答案,比如你的桌子上有一个非常适合正常化的候选表格。也就是说,你的问题有点模糊。更多的细节将有助于获得好的答案