我有170个属性的实体。它来自车辆监控的数据。每个实体都有数据时间标签和gps终端的唯一ID。终端的日期时间和ID - 这些是GROUP BY操作的条件。我可以为所有实体创建一个表:
CREATE TABLE rows {
terminal_id long reference terminals(id),
time timestamp,
-- description 170 attributes
PRIMARY KEY(terminal_id, time)
}
或者我可以用关系创建许多表:
CREATE TABLE rows {
row_id long PRIMARY KEY,
terminal_id long reference terminals(id),
time timestamp -- need create index for group by
}
CREATE TABLE gps {
row_id long references rows(row_id),
-- description gps attributes
}
CREATE TABLE fuel {
row_id long references rows(row_id),
-- description fuel attributes
}
-- etc.
请告知此类型数据库的最佳结构。
答案 0 :(得分:1)
在我看来,将属性移动到不同的表是没有优势的,实际上由于从db获取数据所需的额外连接,性能会更差。您描述的分解仅在建模可能彼此独立存在的不同实体时才需要,而这不是您的情况。