0

我有一个业务实体,表示给定时间给定位置的天气预报。对于给定的位置和时间,有不同种类的天气参数可以预测,例如气温、气压、风速等。并非所有参数都可以保证可用,我希望灵活地添加新参数。

如果我想设计一个适合这些需求的表格,我可以使用以下方法(每个实体一行):

myforecasttable:
  - location_id PRIMARY
  - timestamp PRIMARY
  - airtemperature
  - airpressure
  - windspeed
  - etc.

或者我可以使用以下方法(每个实体多行):

myforecasttable:
  - location_id PRIMARY
  - timestamp PRIMARY
  - parameter_type PRIMARY
  - value

...其中parameter_type将是enumstring代表天气参数的具体类型(如气温、气压等)。

使用第一种方法,我将获取NULL不同列中的值,但查询起来会更容易。使用第二种方法,添加新的天气参数会容易得多,但查询可能会更难。

这些设计有什么优缺点吗?如何选择最适合我的用例的数据库设计?

4

0 回答 0