Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 你是如何建立你的数据库的?在新的一年里,你需要改变很多吗?_Php_Mysql_Sql_Database - Fatal编程技术网

Php 你是如何建立你的数据库的?在新的一年里,你需要改变很多吗?

Php 你是如何建立你的数据库的?在新的一年里,你需要改变很多吗?,php,mysql,sql,database,Php,Mysql,Sql,Database,我有一个关于数据库的问题。您的数据库实际上是什么样子的?假设你有一张报价表 例如,现在是2021年。年底有1000个(id自动递增)请求,因此有1000行 如果报价单编号必须再次从0开始,您如何使其在2022年可用?你会做一个全新的表格,改变网站上所有的代码吗(就像我一样)?或者你的处理方式完全不同吗?我会添加一个“输入日期”列,并在每个记录创建时盖章。然后我将查询表中在日期窗口中创建的记录 例如: 下面的代码将向表中添加一个新列 默认情况下,此列将包含记录的输入日期。 (任何现有记录都将包含您

我有一个关于数据库的问题。您的数据库实际上是什么样子的?假设你有一张报价表

例如,现在是2021年。年底有1000个(id自动递增)请求,因此有1000行


如果报价单编号必须再次从0开始,您如何使其在2022年可用?你会做一个全新的表格,改变网站上所有的代码吗(就像我一样)?或者你的处理方式完全不同吗?

我会添加一个“输入日期”列,并在每个记录创建时盖章。然后我将查询表中在日期窗口中创建的记录

例如:

下面的代码将向表中添加一个新列

默认情况下,此列将包含记录的输入日期。
(任何现有记录都将包含您第一次运行查询的日期。)

之后,您可以计算两个日期之间的记录,如下所示:

SELECT COUNT(*) AS [RECORD COUNT]
FROM [yourTable]
WHERE [entryDate] BETWEEN '2021-01-01' AND '2022-01-01'

为什么需要再次从0开始?自动递增字段应唯一地表示每一行。因此不可能有重复的。如果您正在创建多个具有相同列集的表,只是为了表示不同的年份,那么您正在对数据进行非规范化,使其更难搜索,等等。只需将年份作为另一列添加到报价表中即可。如果您需要对报价进行编号,并在每个新年重新开始,您可以在UI应用程序中动态计算报价,或者在表中存储另一列。但不要制作新表格。@ADyson感谢您的评论。这是因为有很多关于它的问题。比如,3个月内我们有多少报价?6个月内我们现在有多少报价?一年四季。如果你每年重新开始编号,你就不能很容易地回答这个问题吗?@ADyson我现在确实做的是在“年”列中插入本地日期时间(年)。只需将日期与引号一起存储(但与引号分开),我说,只需将日期与每行一起存储在表中,然后你可以用一个简单的计数查询来回答这些问题,按日期限制行数。(简单地看一下最新的自动递增数字,无论如何都不准确,如果你删除了一行的话)也许我已经失去联系了,但是你确定这是有效的MySQL语法吗?
SELECT COUNT(*) AS [RECORD COUNT]
FROM [yourTable]
WHERE [entryDate] BETWEEN '2021-01-01' AND '2022-01-01'