Mysql 在数据库中存储动态字段时的最佳做法

Mysql 在数据库中存储动态字段时的最佳做法,mysql,sql,database,database-design,rdbms,Mysql,Sql,Database,Database Design,Rdbms,我有一个带有输入字段的表单,可以根据用户的需要复制多次。例如-学历字段,用户可以只输入1个学历或添加10个学历,在数据库中存储这些学历的最佳方式是什么。我知道我可以用PHP序列化它们,或者将这些字段中输入的数据转换成JSON,然后存储。但我知道这不是理想或最佳做法。有人能告诉我去那里的最好方法吗 我假设您正在使用一个表PersonDetails来存储一个人的详细信息。不要在此表中存储教育详细信息,因为存在一对多关系(一个人可以有多个教育详细信息行)。创建另一个表EducationQualific

我有一个带有输入字段的表单,可以根据用户的需要复制多次。例如-学历字段,用户可以只输入1个学历或添加10个学历,在数据库中存储这些学历的最佳方式是什么。我知道我可以用PHP序列化它们,或者将这些字段中输入的数据转换成JSON,然后存储。但我知道这不是理想或最佳做法。有人能告诉我去那里的最好方法吗


我假设您正在使用一个表PersonDetails来存储一个人的详细信息。不要在此表中存储教育详细信息,因为存在一对多关系(一个人可以有多个教育详细信息行)。创建另一个表EducationQualification以存储每个教育资格,并使用“personId”链接两个表。此外,还可以在“EducationQualification”表的“personId”列中创建外键约束

create table PersonDetails(personId integer primary key, name varchar(30));
insert into PersonDetails(personId,name) values(1, "praveen");
insert into PersonDetails values(2, 'naga');
insert into PersonDetails values(3, 'surya');

create table EducationQualification(QualificationID integer primary key, QualificationName varchar(30), personId integer);
insert into EducationQualification values (1, 'schooling', 1);
insert into EducationQualification values (2, 'degree', 1);
insert into EducationQualification values (3, 'postgraduate', 2);
insert into EducationQualification values (4, 'graduate', 2);

您好创建表用户和表用户资格in,用户表中的useId是用户资格表中的外键,例如,您可以将此id设置为autoincrement,并在附加新资格时递增

你们想用学位和学院/学院添加更多字段吗?点击前端的AddMore时,更多字段将通过javascript添加,我知道怎么做。但是在后端,在mysql数据库中,提交表单后存储数据的最佳方式是什么?您还必须考虑如何访问“更多”。JSON是笨拙的;表中的行数越多就容易得多。