一、原型图
二、分析
1、天气,值字段只有实测值,可用一个字段表示(单位、来源同上)
2、气温有默认值与实测值两个选项,一个字段无法表示默认值与实测值(单位,来源同上)
3、因为有默认值,考虑配置表temp_config
有字段:id、name、value、unit、origin
4、有一张主表weather_station:有字段id、name、address、weather_value、weather_unit、weather_origin
一张气温表:有关联字段weather_station_id(可用于存取主表数据)、type字段区分实测值还是默认值、其他字段id、value、unit、origin
三、优化
1、天气字段
数据库存jsonb,以JSON的形式保存如{"name":"temp","value":"30","unit":"℃","origin":"白云气象站"}
Java实体类对应Object
(可能有多个类似的字段)
{
[
{"name":"temp","value":"30","unit":"℃","origin":"白云气象站","type":"0"},
{"name":"humidity","value":"82","unit":"%","origin":"白云气象站","type":"0"}
]
}
类似于这种结构,可以少建立几个关联表
以上。