如何设计该数据库,使表在sql中具有更少的空块?

如何设计该数据库,使表在sql中具有更少的空块?,sql,sqlite,Sql,Sqlite,我正在使用sqlite,所以空间对我来说是个问题。 我想要一个表格来存储一些城市的历史温度数据。这张桌子会像 city_name 2018_04_04 2018_04_03 2018_04_02 ...... 但问题是这些历史温度记录的范围对于不同的城市是不同的。举个例子,纽约的温度记录始于公元1800年,伦敦的温度记录始于公元1600年。 因此,如果我构建一个列以1600 AD开始的表,将有大量的Null填充空间。据我所知,如果数据是浮点的,Null也会占用空间 我应该如

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

city_name      2018_04_04  2018_04_03  2018_04_02 ......   
但问题是这些历史温度记录的范围对于不同的城市是不同的。举个例子,纽约的温度记录始于公元1800年,伦敦的温度记录始于公元1600年。 因此,如果我构建一个列以1600 AD开始的表,将有大量的Null填充空间。据我所知,如果数据是浮点的,Null也会占用空间


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

不要将每天添加为列,而是添加一个日期列,并将日期写入该列:

city_name | date | temperature ____________________________________ New York | 2018_04_04 | 40.3 New York | 2018_04_03 | 38.3 城市名称日期温度 ____________________________________ 纽约| 2018 | 04 | 40.3 纽约| 2018 | 04 | 03 | 38.3 如果要节省一些内存,请添加一个城市表,并仅将城市写入温度表

ID City 1 London 2 New York ID城市 1伦敦 2纽约 城市ID |日期|温度 2 2018-04-04 40.3 2 2018-04-03 38.3
不要将每天添加为列,而是添加日期列并将日期写入该列:

city_name | date | temperature ____________________________________ New York | 2018_04_04 | 40.3 New York | 2018_04_03 | 38.3 城市名称日期温度 ____________________________________ 纽约| 2018 | 04 | 40.3 纽约| 2018 | 04 | 03 | 38.3 如果要节省一些内存,请添加一个城市表,并仅将城市写入温度表

ID City 1 London 2 New York ID城市 1伦敦 2纽约 城市ID |日期|温度 2 2018-04-04 40.3 2 2018-04-03 38.3
创建一个包含四个字段的表格怎么样?
id
city\u name
measurement\u date
,和
temperature
,然后用您拥有的日期填充它?@JLe Thnx lod,您刚刚保存了我的屁股。创建一个包含四个字段的表格怎么样,
id
city\u name
measurement\u date
,和
温度
,然后在上面填上你的日期?@JLe Thnx lod,你刚刚救了我一命。