Мне нужен совет по БД, а также по архитектуре.
Я разрабатываю приложение, которое использует подход построителя форм для определенных областей. Например. Регистрация пользователя, где помимо некоторых основных полей для пользователя, дополнительные поля могут быть настроены администратором:
У меня есть несколько таблиц в базе данных, в которых будут храниться метаданные для этих вновь созданных полей:
FIELDS_TXN
______________
F_ID
F_NAME
F_ORDER
F_TYPE_ID
FIELD_TYPE_MST
______________
F_TYPE_ID
F_TYPE
FIELD_OPTIONS_TXN
______________
F_OPTION_ID
F_OPTION_VALUE
F_FIELD_ID
(Это очень грубый дизайн БД)
Теперь я знаю, какие новые поля мне нужно показать в форме, но как мне сохранить эти дополнительные данные?
Например, поля по умолчанию для пользователя: имя, фамилия и адрес электронной почты.
User.java
@Entity
@Table(name="user_txn")
public class User{
@Id
@GeneratedValue
@Column(name="id")
private int id;
@column(name="first_name")
private String firstName;
@column(name="last_name")
private String lastName;
@column(name="email")
private String email;
public int getId(){
return this.id;
}
public void setId(int id){
this.id = id;
}
public String getFirstName(){
return this.firstName;
}
public void setFirstName(String firstName){
this.firstName = firstName;
}
public String getLastName(){
return this.lastName;
}
public void setLastName(String lastName){
this.lastName = lastName;
}
public String getEmail(){
return this.email;
}
public void setEmail(String email){
this.email = email;
}
}
Теперь, если администратор добавит или настроит дополнительные поля, такие как дата рождения, адрес, город, страна, пин-код для пользователей, как мне сохранить значения для этих полей?
Один из подходов, который я имею в виду, - это создать таблицу, например. пользовательские_поля? Но как динамически отображать спящий режим для настраиваемых полей для динамически создаваемой таблицы??
Это хороший подход для создания динамических форм в веб-приложении?