如何设计此数据库以使表中sql中的Null块较少?

时间:2018-04-04 13:24:07

标签: sql sqlite

我正在使用sqlite,所以空间对我来说是一个问题。 我想要一张表来存储一些城市的历史温度数据。该表就像

city_name      2018_04_04  2018_04_03  2018_04_02 ......   

但事实上,这些历史温度记录的范围对于不同的城市是不同的。例如,对于纽约,温度记录从公元1800年开始,伦敦的温度记录从公元1600年开始。 因此,如果我构建一个列以1600 AD开始的表,那么将会有大量空间填充Null。据我所知,如果数据是浮动的,Null也会占用空间。

我应该如何构建此表以使其更“智能”并填充更多有用的数据?或者至少“强迫”Null不占用任何空间?

1 个答案:

答案 0 :(得分:6)

不要将每一天添加为列,但添加日期列并将日期写入此列:

city_name |       date | temperature
____________________________________
 New York | 2018_04_04 |        40.3
 New York | 2018_04_03 |        38.3

如果要保存一些内存,请添加城市表,只将city_fk写入温度表。

ID  City
1   London
2   New York
CityID |   date   | temperature
   2    2018-04-04     40.3
   2    2018-04-03     38.3