2015-12-09 90 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,值= “萨拉”