【问题标题】:Best approach in Designing Rainfall_data Table in MYSQL Database在 MYSQL 数据库中设计 Rainfall_data 表的最佳方法
【发布时间】:2016-10-10 10:41:43
【问题描述】:

我正在设计一个数据库,旨在存储来自各个站点的每日降雨数据。无论是否下雨,我都必须存储每日记录,即如果下雨,我会指示从雨量计读取的毫米数,如果没有下雨,我只会指示零。

我想到的方法是我的“rainfall_data”表中有以下字段:

选项 1:

身份证|车站 |年份 |月 |第一天 |第二天 |第一天 |第3天|第四天 |第五天 ....|第31天

选项 2

身份证|车站 |年份 |月 |天 |

我确实感觉 Option1 更好,因为我的“rainfall_data”表中的行数会更少

寻求建议。谢谢

【问题讨论】:

    标签: mysql


    【解决方案1】:

    方法 1 实际上是不太有利的选择。

    为什么?

    1) 添加或删除列的成本很高(需要ALTER TABLE,它会锁定整个表并且必须重组所有现有数据),而添加或删除行很容易

    2) 插入数据需要锁定现有行,而插入新行会使现有数据可访问(但这在很大程度上取决于数据库引擎)

    3) 大量行对 DBMS 来说不是问题,它们旨在处理这个问题。然而,大量的列,特别是如果大部分时间都是空的,会无缘无故地增加数据库大小(列中的空值需要与任何非空值一样多的空间,除了 varchar列)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      • 2011-10-19
      • 2012-10-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-25
      相关资源
      最近更新 更多