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