简单的问题。我有几个不同的模型存储在 SQL 数据库中。带有字节数据的图像记录表,大型多字段用户数据表等。所有这些模型都需要主键。大多数初学者教程都显示了 int 的用法。这是标准和专业的。我觉得开始使用 int 很奇怪,因为它的长度是可变的并且以 1 开头:S
很抱歉这个业余问题,但我无法通过谷歌找到任何关于这个主题的足够材料。
简单的问题。我有几个不同的模型存储在 SQL 数据库中。带有字节数据的图像记录表,大型多字段用户数据表等。所有这些模型都需要主键。大多数初学者教程都显示了 int 的用法。这是标准和专业的。我觉得开始使用 int 很奇怪,因为它的长度是可变的并且以 1 开头:S
很抱歉这个业余问题,但我无法通过谷歌找到任何关于这个主题的足够材料。
INT
使用或任何其他整数数据类型作为主键或标识列并没有隐含的不专业。这仅取决于您的业务需求。为了使编程尽可能简单,INT
数据类型是许多业务需求的不错选择:
SELECT
s 和UPDATE
s 来说很快。BIGINT
可以处理比您可以放入数据库中的更多记录。严重地。您可能不想使用完整主键的一个原因:
Guid
(或UNIQUEIDENTIFIER
SQL Server 术语)来获得全局唯一性。换句话说,如果您将数据迁移到另一个位置,主键应该仍然是唯一的。是的,int
是行业标准。
即使在数据库之外,我也很少看到 C# 代码使用uint
或任何其他变体来表示整数。偶尔byte
用在数组中。long
在int
可能不足以覆盖所有可能性时使用。
始终使用的一个优点int
是您可以传递id
变量,而不必担心在不同整数类型之间进行转换。
这是 100% 好的,并且被广泛使用。有些人使用long
s 作为主键,因为它们的最大值更大。虽然,在大多数情况下不是必需的。
Guid
type 有时也用作 ID。它有一些好处,比如固定长度、全局唯一性和不可预测性。还有一些问题,例如较低的搜索性能,很难记住。