是否值得制作单独的 DATE 表?

Jak*_*son 6 mysql datatypes

如果我有一张这样的桌子:

my_table
=======================
id    date    some_data
Run Code Online (Sandbox Code Playgroud)

把它拉到date自己的桌子上有意义吗?该date字段将使用date数据类型。所以它现在看起来像这样:

my_table
==========================
id    date_id    some_data

dates
==========
id    date
Run Code Online (Sandbox Code Playgroud)

根据 MySQL,date数据类型 = 3 个字节。的date_id需要是最大的MEDIUMINT(3个字节),以获得相同的结果。一种正常INTBIGINT超出存储要求的DATE类型。

单独表的一个缺点是查询会更复杂,因为我要加入另一个表。

关于是否将date字段拆分到它自己的表中,是否还有其他需要考虑的后果?我的直觉反应是,除非您处理一小组日期(小到可以使用TINYINTor SMALLINT),否则不值得这样做。

Han*_*non 8

在我看来,这是过度思考设计的典型例子。

将日期保存在同一个表中,以便在必要时可以轻松地与其他列建立索引,并且不会占用 3 倍的字节数,并且不会让未来的开发人员生活成为地狱。