Лучшие практики при хранении динамических полей в базе данных - PullRequest
0 голосов
/ 21 января 2019

У меня есть форма с полями ввода, которые могут дублироваться столько раз, сколько хочет пользователь. Например. - В области образовательных квалификаций пользователь может указать только 1 образовательную квалификацию или добавить 10 из них, что является лучшим способом сохранить их в базе данных. Я знаю, что могу сериализовать их в PHP или преобразовать данные, введенные в эти поля, в JSON, а затем сохранить их. Но я знаю, что это не идеал или лучшая практика. Кто-нибудь может подсказать мне лучший путь к этому?

«Пример ввода формы в дианамике»

Ответы [ 2 ]

0 голосов
/ 21 января 2019

привет, создайте таблицу user и таблицу user_qualificatin, useId из таблицы user является внешним ключом в таблице user_qualification, например, вы можете установить для этого идентификатора значение autoincrement и увеличивать его при каждом добавлении новой квалификации.

0 голосов
/ 21 января 2019

Я предполагаю, что вы используете таблицу PersonDetails для хранения данных о человеке. Не храните сведения об образовании в этой таблице, поскольку существует отношение один ко многим (один человек может иметь несколько строк сведений об образовании). Создайте еще одну таблицу EducationQualification для хранения каждой квалификации образования и свяжите обе таблицы, используя «personId». Кроме того, вы также можете создать ограничение внешнего ключа в столбце personId таблицы EducationQualification.

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);
...