gpt4 book ai didi

mysql - 如何在数据库中存储一年中每一天的价格?

转载 作者:行者123 更新时间:2023-11-29 04:06:47 25 4
gpt4 key购买 nike

我正在做一个项目,但在数据库设计方面遇到了问题。我需要存储一年中每一天的价格,但我需要能够更改特定日期的价格。

我是否需要为每一天创建一列,在这种方法中我必须在表中创建 365 列。

对于这个问题,您有更好的解决方案吗,我们将不胜感激,谢谢。

最佳答案

您应该创建一个包含 6 列的表格。

CREATE TABLE IF NOT EXISTS priceHistory (
`price` decimal(8,2) NOT NULL,
`date` datetime,
`productId` VARCHAR(50),
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`createdAt` TIMESTAMP DEFAULT NOW(),
`updatedAt` TIMESTAMP
) ENGINE = INNODB;

现在您可以插入每一天的日期和价格,created_atupdatedAtid 列会自动插入(并且 updatedAt 自动更新),因此您无需再为它们操心。

如果您每天保存这些价格并在以后访问数据,您甚至不需要 date 列,只需使用 createdAt ,同样,在 INSERT 上自动创建。

一旦你有了数据,你就可以查询它了

SELECT * FROM priceHistory WHERE DATE(`date`) = '2015-02-29';

您可能还会找到 mysql's documentation在 DATE 函数上很有用。

编辑

正如@murenik 在他的回答中提到的那样,推荐的方法是创建与保存您的产品详细信息的表的关系,您可能拥有该表。为此,将 productId 语句更改为

productId INT PRIMARY KEY REFERENCES products(id),

这将链接这些表,使将来的查询更容易、更有效。

SELECT ph.*, p.* 
FROM products p
INNER JOIN priceHistory ph on p.id = ph.productId

参见 mysql JOIN .

关于mysql - 如何在数据库中存储一年中每一天的价格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32853420/

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