1
我正在为我的应用程序设计数据库。我正在使用PostgreSQL。它是通用的应用和现实世界的结构是这样的:关系数据库与对象结构的设计
类别(如植被)--->现象(如树)--->参数(如类型 - 针叶与落叶,以米为单位的高度 - 10等)
数据库可以存储很多类别,现象,参数及其值。一个类别可以有N个现象,一个现象可以有N个参数。
因此,我创建这些表中:
Category
--------
id
name
Phenomenon
----------
id
name
category FK (to Category)
Parameter
---------
phenomenon FK (to Phenomenon)
name
value <-- here is a problem
在值列可以是从字典,VARCHAR值,数值或布尔值的值。我怎样才能设计参数表?我应该为不同类型的值创建更多列(varchar - 可以是没有完整性检查的字典值,数字,布尔值)。还是有任何设计考虑这个问题?我不想使用JSON或XML。
我很感激任何帮助。
Thx为答案。但我不确定这个例子。每个参数都是单独的表格?如果我需要添加新现象和新参数怎么办?我发现了一些关于EAV的解决方案(我无法正确指出问题)。在幻灯片16的演示中,他们的模型具有不同的列。这与你提供的一样吗? – Bulva
还发现它:https://inviqa.com/blog/eav-data-model看起来非常相似 – Bulva
在关系模型中,您可以添加新现象和新类别而不更改模式,但是您必须添加新每个新参数的表格。这就是一阶模型的局限性。 – reaanb