如何将columnName及其值动态添加到MYSQL表中

如何将columnName及其值动态添加到MYSQL表中,mysql,sql,jdbc,Mysql,Sql,Jdbc,我有一个主表,例如Fruits_Details(主表),其中包含列名: f|U名称| f|U价格|位置 我想向用户展示一个表单,该表单由上述字段组成,但也包含一个额外的“+”符号,用户可以从中添加新的细节,如键、值对 例如: 水果颜色-红色 水果季节-春季 还有更多类似的细节。我希望这两个详细信息应存储在不同的表中(子表-我将实现外键概念)。 但我不知道如何设计一个查询,在我的子表中动态添加列名及其相关值 子表应该有一个attibute名称和值,并且不能有任何动态内容 child table -

我有一个主表,例如Fruits_Details(主表),其中包含列名:
f|U名称| f|U价格|位置
我想向用户展示一个表单,该表单由上述字段组成,但也包含一个额外的“+”符号,用户可以从中添加新的细节,如键、值对

例如:
水果颜色-红色
水果季节-春季
还有更多类似的细节。我希望这两个详细信息应存储在不同的表中(子表-我将实现外键概念)。

但我不知道如何设计一个查询,在我的子表中动态添加列名及其相关值

子表应该有一个attibute名称和值,并且不能有任何动态内容

child table
-----------
fruit_id
attribute_name
attribute_value


insert into child (fruit_id, attribute_name, attribute_value)
values (1, 'color', 'red')

由于潜力是无穷的,所以不要按列计算,而是按行计算。。。 您将能够以一种方式提取信息,并以另一种方式显示它

一个名为frus\u attributes的表,将包含以下列: 属性\ id、f\ id(外键)、属性\名称、属性\值

CREATE TABLE `fruits_attributes` (
  `attribure_id` int(8) unsigned NOT NULL AUTO_INCREMENT,
  `f_id` mediumint(8) unsigned NOT NULL,
  `attribure_name` varchar(50) NOT NULL,
  `attribure_value` varchar(50) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `f_id` (`offer_id`),
  KEY `attribure_name` (`attribure_name`),
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
;
然后,SELECT查询应该类似于

SELECT f.*, fa.* FROM
Fruits_Details f
LEFT JOIN fruits_attributes fa ON fa.id = f_id

但我想要这样的东西:将值(1,'color','India')插入到child(fruit\u id,fruit\u color,fruit\u location,…)中。但是这些列名应该是动态的,我的意思是,如果下一个用户想要添加fruit\u season列及其值,那么它也应该被附加到子表中。不要这样做。绝对不建议使用动态结构,但是如果我想添加3个以上的属性,而不是如何执行它,该怎么办呢?只要您添加属性,连接就会添加它。当然,只要属性属于原始主表水果,WordPress就会在其wp_Posteta表中实现这种键/值方法,以便为帖子分配属性。你可以看看他们的设计作为例子。非常好。