在MYSQL数据库中设计Rainfall_data表的最佳方法

时间:2016-06-09 16:38:11

标签: mysql

我正在设计一个数据库,用于存储各个站点的每日降雨量数据。我不得不存储每日记录,无论是否下雨,如果有雨,我表示从雨量计读数毫米,如果没有下雨我只是指示零。

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

选项1:

ID |车站|一年|月| day1 | day2 | day1 |第三天| day4 |第5天.... | day31

选项2

ID |车站|一年|月|一天|

我确实感觉 Option1 更好,因为我的" rainfall_data"表

寻找建议。感谢

1 个答案:

答案 0 :(得分:0)

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

为什么?

1)添加或删除列是很昂贵的(需要ALTER TABLE来锁定整个表并且必须重新构建所有现有数据),而且很容易添加或删除行

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

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