SQL表设计:每个实体一行还是多行?

时间:2013-04-22 09:44:19

标签: sql database-design

我有一个商业实体代表给定时间内某个地点的天气预报。有针对给定位置和时间预测的不同种类的天气参数,例如空气温度,气压,风速等。并非所有参数都能保证可用,并且我希望保持灵活性以添加新参数。

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

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

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

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

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

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

这些设计有利有弊吗?如何选择哪种数据库设计最适合我的用例?

0 个答案:

没有答案