gpt4 book ai didi

sql - SQL最佳实践-可以依靠自动增量字段按时间顺序对行进行排序吗?

转载 作者:行者123 更新时间:2023-12-04 00:59:23 24 4
gpt4 key购买 nike

我正在与一个希望将时间戳添加到一堆表中的客户合作,以​​便他们可以按时间顺序对这些表中的记录进行排序。所有表还具有一个自动递增整数字段作为其主键(id)。

(简单的)想法-节省开销/存储,并依靠主键按时间顺序对字段进行排序。当然可以,但是我不确定这种方法在健全的数据库设计中是否可以接受。

优点:每条记录所需的存储空间更少,VO类更简单等。

缺点:这意味着该字段的特征,否则就是一个简单的标识符,其定义绝不以任何方式定义或保证它应该/将如此运行。

出于我的问题,假设数据库表定义是固定不变的。尽管如此-就最佳做法而言,这是否可以接受?

谢谢

最佳答案

您要求的是“最佳实践”,而不是“不糟糕的实践”,因此:不,您不应该依靠自动递增的主键来建立时间顺序。有一天,您将对数据库设计进行一次更改,但该更改会失败。我已经看到了它的发生。

缺省值为GETDATE()的datetime列的开销很小(大约为整数),并且(更好)告诉您的不仅是顺序,而且还告诉您实际的日期和时间,这通常是无价的。即使在该列上保持索引也相对便宜。

这些天来,我总是将CreateDate列数据对象连接到现实世界的事件(例如帐户创建)。

编辑添加:

如果确切的时间顺序对您的应用程序至关重要,则您不能依赖自动递增或时间戳(因为无论分辨率有多高,总会有相同的时间戳)。您可能不得不做一些特定于应用程序的事情。

关于sql - SQL最佳实践-可以依靠自动增量字段按时间顺序对行进行排序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3730762/

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