我有一個PostgreSQL數據庫與一個表。我的應用程序的用戶可以添加新的數據源(例如CSV文件),以擴展基礎數據。在應用程序中用戶定義他的新數據。如何動態擴展數據模型?
我的問題是:如何爲這種情況製作數據模型?
我需要在數據庫中爲這些新數據創建新表,還是向現有表添加新列?用戶可以添加多個新數據源。
例如:
我有僱員表。用戶使用家庭信息添加支付和數據源的數據源。當我不知道新數據的格式時,如何將所有這些數據存儲在數據庫中?
我有一個PostgreSQL數據庫與一個表。我的應用程序的用戶可以添加新的數據源(例如CSV文件),以擴展基礎數據。在應用程序中用戶定義他的新數據。如何動態擴展數據模型?
我的問題是:如何爲這種情況製作數據模型?
我需要在數據庫中爲這些新數據創建新表,還是向現有表添加新列?用戶可以添加多個新數據源。
例如:
我有僱員表。用戶使用家庭信息添加支付和數據源的數據源。當我不知道新數據的格式時,如何將所有這些數據存儲在數據庫中?
有幾種選擇適合你。
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,值= 「薩拉」