1

简单的问题。我有几个不同的模型存储在 SQL 数据库中。带有字节数据的图像记录表,大型多字段用户数据表等。所有这些模型都需要主键。大多数初学者教程都显示了 int 的用法。这是标准和专业的。我觉得开始使用 int 很奇怪,因为它的长度是可变的并且以 1 开头:S

很抱歉这个业余问题,但我无法通过谷歌找到任何关于这个主题的足够材料。

4

4 回答 4

1

INT使用或任何其他整数数据类型作为主键或标识列并没有隐含的不专业。这仅取决于您的业务需求。为了使编程尽可能简单INT数据类型是许多业务需求的不错选择:

  • 它能够代表大约 21 亿条独特的记录。
  • 它在现代硬件中消耗最少的硬盘空间。
  • 它对SELECTs 和UPDATEs 来说很快。
  • 如果记录的数量有可能超过限制,那么重构到更大的积分是相当容易的。BIGINT可以处理比您可以放入数据库中的更多记录。严重地。

您可能不想使用完整主键的一个原因

  • 您可以使用 a Guid(或UNIQUEIDENTIFIERSQL Server 术语)来获得全局唯一性。换句话说,如果您将数据迁移到另一个位置,主键应该仍然是唯一的。
于 2012-07-25T08:09:24.907 回答
0

是的,int是行业标准。

即使在数据库之外,我也很少看到 C# 代码使用uint或任何其他变体来表示整数。偶尔byte用在数组中。longint可能不足以覆盖所有可能性时使用。

始终使用的一个优点int是您可以传递id变量,而不必担心在不同整数类型之间进行转换。

于 2012-07-25T07:32:55.753 回答
0

这是 100% 好的,并且被广泛使用。有些人使用longs 作为主键,因为它们的最大值更大。虽然,在大多数情况下不是必需的。

于 2012-07-25T07:33:17.283 回答
0

Guidtype 有时也用作 ID。它有一些好处,比如固定长度、全局唯一性和不可预测性。还有一些问题,例如较低的搜索性能,很难记住。

于 2012-07-25T07:42:53.367 回答