Tab*_*edo 2 mysql sql database-design
下面的两个表都可以保存相同的数据 - 一整年,包括每个月的一些任意信息
table1 (one row = one month)
------
id
month
year
info
Run Code Online (Sandbox Code Playgroud)
table2 (one row = one year)
------
id
year
jan_info
feb_info
mar_info
apr_info
may_info
jun_info
jul_info
aug_info
sep_info
oct_info
nov_info
dec_info
Run Code Online (Sandbox Code Playgroud)
表A.
表B.
在我设置的真实世界测试场景中,table1中有12,000行用于10年的数据,其中table2有150个.我意识到越少越好,一般而言,但总是如此?如果我采取一种方式,我担心我会忽略一些后来发现的警告.我甚至没有考虑过磁盘使用情况或查询可能更快.MySQL更喜欢什么?有"正确"的方式吗?或者,还有更好的方法?
感谢您的输入!
不要考虑如何存储它,考虑如何使用它.并考虑将来如何改变.存储结构应反映使用情况.
第一个选项在第二个选项中更加标准化,所以我倾向于选择它.它具有易于更改的优点,例如,如果每个月突然需要存储关于它的第二条信息.通常这种结构更容易填充,但并非总是如此.想想数据的来源.
如果您仅将此数据用于报表,并且不需要跨月汇总数据,请使用第二个选项.
这实际上取决于数据的来源和来源.但一般来说,第一种选择更好.