2015-12-09 83 views
0

我有一個PostgreSQL數據庫與一個表。我的應用程序的用戶可以添加新的數據源(例如CSV文件),以擴展基礎數據。在應用程序中用戶定義他的新數據。如何動態擴展數據模型?

我的問題是:如何爲這種情況製作數據模型?

我需要在數據庫中爲這些新數據創建新表,還是向現有表添加新列?用戶可以添加多個新數據源。

例如:

我有僱員表。用戶使用家庭信息添加支付和數據源的數據源。當我不知道新數據的格式時,如何將所有這些數據存儲在數據庫中?

回答

0

有幾種選擇適合你。

1)使用無模式數據存儲。如果你被困在PostgresSQL上,他們有一個json數據類型可以工作。否則,像Couchbase或MongoDB這樣的文檔數據庫就可以做到。這樣您就可以即時添加新的屬性。

2)如果由於某種原因需要使用關係模式,請使用實體屬性值(EAV)模式。這裏有一個如何,你可以通過將行插入表2和表3的飛行加薪水和家庭成員的樣本(但我強烈建議選擇1)

表1:員工

ID = 111, NAME = 「John」 的出生= 「1987年7月21日」 的日期等)

表2:Employee_Attribute

ID = 1,名稱= 「工資」,數據類型= 「金錢」 ID = 2,Name =「Family Member Name」,DataType =「String」

表3:Employee_Attribute_Value

的Employee_ID = 111,Attribute_ID = 1,值= 「78000」

的Employee_ID = 111,Attribute_ID = 2,值= 「薩拉」