gpt4 book ai didi

sql-server-2005 - 日期时间字段上的 SQL Server 主键

转载 作者:行者123 更新时间:2023-12-04 07:19:34 24 4
gpt4 key购买 nike

我正在 SQL Server 2005 中创建一个需要 2 个字段的新表:DateTime 和 MyValue (Int32)。 DateTime 字段将是唯一的,因此我将对其设置唯一约束。

哪种表结构更好,为什么?

MyIndex (PK, int)
MyDate (日期时间) (IX_UniqueKey)
我的值(value)(整数)

或者

MyDate(PK,日期时间)
我的值(value)(整数)

我的感觉是我不想在这个表中使用人工 PK (MyIndex),因为它是不必要的,而且日期是唯一的,我将使用它们来访问任何记录。但是,可能是人工PK性能更高......?

最佳答案

当您说日期将是唯一的时,您的意思是您认为它们将是唯一的,还是问题的陈述保证了它们的唯一性?根据我的经验,有些事情并没有想象中那么独特(美国社会安全号码就是一个例子)。

如果不能保证日期值唯一,则应添加整数键。

如果日期值保证唯一,它们会改变吗?如果它们确实发生了变化,它们是否被其他表引用?如果两个答案都是"is",您可能应该添加整数键。

如果日期值保证唯一,并且不会更改或未被引用,则可以将它们用作键。常规 DATETIME 是 8 个字节,标准 INTEGER 值是 4 个字节,这可能对索引的影响很小。如果您的日期值只是日期,或者仅精确到分钟或更小,并且在类型允许的更严格的范围内,您可以使用 SMARLDATETIME 并将这些索引值缩小到 4 个字节。

关于sql-server-2005 - 日期时间字段上的 SQL Server 主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2391298/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com