MySQL-将名称和值转换为列
我有以下两个表格: 参数表:MySQL-将名称和值转换为列,mysql,sql,Mysql,Sql,我有以下两个表格: 参数表:ID,EntityType,ParamName,ParamType 实体表:ID,Type,Name,ParamID,StringValue,NumberValue,DateValue 实体。ParamID链接到Parameters.ID 实体。Type链接到参数。EntityType StringValue,NumberValue,DateValue包含基于参数的数据。键入(1,2,3) 查询结果应包含: Entity.ID, Entity.Name, Para
ID,EntityType,ParamName,ParamType
实体表:ID,Type,Name,ParamID,StringValue,NumberValue,DateValue
- 实体。
链接到ParamID
Parameters.ID
- 实体。
链接到参数。Type
EntityType
,StringValue
,NumberValue
包含基于DateValue
(1,2,3)参数的数据。键入
Entity.ID, Entity.Name, Parameters.ParamName1, Parameters.ParamName2... Parameters.ParamNameX
ParamNameX
的内容与上述相关性相同。如何将参数名称转换为列,并将其值转换为这些列的数据?我甚至不知道从哪里开始
上述说明:例如,实体X可以是entitytype 1和entitytype 2。parameters表包含类型1和类型2的paramname,但我只需要获取(例如)实体类型1的paramname。您试图归档的是EAV(实体属性值)模型 但是你摆桌子的方式是错误的 每种类型都应该有一个表。 所以实体字符串、实体编号、实体日期和一个主表实体,其中包含id和一些常规内容,如创建时间、更新时间等
看看magento和他们是如何摆桌子的。像这样,查询和组织数据就容易多了。我想你需要一个动态轴心:请阅读我问题中的其他信息。我的需求有点不同,我迷路了……连接两个表并检索包含所有必需参数的行不是问题。但是您需要将行转换为列,并且您不知道将有多少列。这叫做动态轴心。我编辑了我的问题。我这样做的原因是,该实体可以有多个实体类型,因此参数表具有所有实体类型的所有可用参数,但我只需要获取所请求实体类型的相关参数。例如,实体X可以是entitytype 1和entitytype 2。parameters表包含类型1和2的paramname,但现在我只需要获取实体类型1的paramname。