【发布时间】:2021-01-02 00:09:28
【问题描述】:
我有一个关于数据库的问题。您的数据库实际上是什么样的?假设您有一个报价表。
例如,现在是 2021 年。您在年底有 1000 个(id AUTO_INCREMENT)请求,因此是 1000 行。
如果 2022 年的报价单必须重新从 0 开始,您如何使它们可用?您会制作一个全新的表格并更改网站上各处的代码(就像我一样)吗?还是您的处理方式完全不同?
【问题讨论】:
-
为什么需要重新从 0 开始?一个自动增量字段应该唯一地代表每一行。因此不能有重复。如果您正在创建具有相同列集的多个表,只是为了表示不同的年份,那么您正在对数据进行非规范化并使其更难搜索等等。只需将年份作为另一列添加到报价表中。如果您需要对报价进行编号,并在每个新的一年重新开始,您可以在您的 UI 应用程序中即时计算它,或者可以在表中存储另一列。但不要制作新表。
-
@ADyson 感谢您的评论。这是因为关于它的许多问题。比如,我们现在在 3 个月内有多少报价?我们现在在 6 个月内有多少报价?并且全年无休。如果你每年重新编号,你不能轻易回答这个问题吗?
-
@ADyson 我现在确实做的是插入本地日期时间(年)的列“年”。
-
只需将日期与报价编号一起存储(但与报价编号分开)
-
正如我和草莓所说,只需将日期与每一行一起存储在表中,然后您可以通过简单的 COUNT 查询来回答这些问题,并按日期限制行。 (无论如何,如果您曾经删除过一行,那么仅仅查看最新的自动增量编号是不准确的)