【发布时间】:2015-02-19 20:59:08
【问题描述】:
我正在开发一个 Postgres 数据库,其中有一些将一直被查询/访问的记录,并且它们具有无限量的可选“元数据”,这些数据将随着时间的推移而被收集。
为了说明这个想法,请考虑一个像全国汽车经销商网络这样的案例。你可以有一个像这样的表:
Vehicles
--------
id
type
status
location
几乎每个查询都需要这些信息。但是有一堆可选的额外信息,如品牌、型号、年份、里程、颜色、以前的所有者、MSRP、蓝皮书价值等。
这些都可能只是 Vehicles 表中的字段,也可能是其他表中的字段,例如 VehicleMetadata,外键指向特定车辆。
作为一个 SQL 外行,我真的不知道在一个表或两个表中执行此操作会有什么不同。我有兴趣了解:
作为 db 专家,您将如何比较和测试这些不同的架构选项并确定哪个表现最佳?
一种方法还是另一种通常被认为更传统或标准的做法?
谢谢!
【问题讨论】:
-
让你的数据库规范化正确,至少 3NF,你会没事的。您没有足够的汽车来解决性能问题...
-
@FrankHeikens 可能基本上是正确的答案,我已经以下面的答案形式对此进行了相当多的扩展——但与 Frank 没有分歧。
标签: database postgresql testing schema