小编典典

可能有一个带有可变列的表吗?

sql

这可能是一个愚蠢的问题,但是这里有:

是否可以制作一个动态表,使其能够包含具有可变列数和自定义列名的行?

我浏览了EAV建模,但看起来很沉重。一个真实的例子可能是这样的:

假设我有一个客户登记册。但是每个客户可能要输入不同的信息。并且取决于您要输入的内容,它应该反映在数据库中。(即每个客户都有不同的列)

这是不可能/可能吗?

更新:

标准方法(即, 具有一个包含所有需要的列的表,并且仅将信息保存到对特定客户有意义的列中,而将其余列设置为NULL
)对我不起作用,因为我想要的内容不能使用“固定”列名。例如,一个客户可能想要CVR号码,而另一个客户可能想要他们的电话号码作为参考号码。还有三分之一可能想要一些完全不同的信息。因此,为了避免有一个包含500列的表,我现在想到了制作一个额外的包含列数据行的表。像这样:Id,名称,值,CustomerId。因此,当我要为客户提供信息时,我要做的就是使用特定的客户ID遍历该表。

我自己的编辑!:

很抱歉让您遇到这个简单的SQL问题!:-) 祝你今天过得愉快…


阅读 127

收藏
2021-04-22

共1个答案

小编典典

您可以将此模型建模为Customer和CustomerAttributes表之间的一对多关系。就像是:

**Customer table**
CustomerId
LastName
FirstName
...

**CustomerAttributes table**
CustomerId
AttributeName
AttributeValue
2021-04-22