【发布时间】:2013-04-27 05:52:37
【问题描述】:
我想创建一个表格,表格的名称是日期。当我收集那天的股票数据时,我想这样存储它:
$date = date('Y-m-d');
$mysqli->query(
"CREATE TABLE IF NOT EXISTS `$date`(ID INT Primary Key)"
);
这样我就会有一个类似的数据库:
2013-5-1: AAPL | 400 | 400K
MFST | 30 | 1M
GOOG | 700 | 2M
2013-5-2: ...
我认为存储这样的信息会更容易,但我看到与此类似的问题已关闭。
How to add date to MySQL table name?
“生成越来越多的表与“保持 数据库干净”。一个干净的数据库是一个明智的, 您可以对其运行查询的标准化、固定架构。”
如果这不是正确的方法,有人可以建议怎么做吗?许多评论这个问题的人表示这不是一个“干净”的解决方案?
【问题讨论】:
-
你有什么问题?
-
链接到类似的封闭问题?
-
为什么不只添加一个日期列?
-
您可以反过来争论:为什么不为日期和股票名称的每个组合添加一个表格?然后你可以有表 AAPL-2013-5-1、MFST-2013-5-1 等等。原因是您永远无法针对它们编写任何有用的查询。通过根据日期将数据拆分到多个表中,您将如何计算整个月的平均股票价格?
-
你不应该担心得到大表,因为数据量或多或少与你的模式相同。如果您只使用 一个 表遇到性能问题,您肯定会使用其中的许多表(但仍取决于使用情况)。