我需要建议db以及架构方面。
我正在开发一个应用程序,它在某些区域使用表单构建器方法。例如。用户注册,除用户的一些基本字段外,管理员可以配置额外的字段:
我在数据库中有几个表,它们将存储这些新创建的字段的元数据:
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;
}
}
现在,如果管理员为用户添加或配置更多字段,如出生日期,地址,城市,国家,Pincode,我该如何存储这些字段的值?
我想到的一种方法是创建一个表格,例如user_custom_fields?但是如何为动态创建的表自定义字段动态hibernate映射?
这是在Web应用程序中构建动态表单的好方法吗?
答案 0 :(得分:0)
您可以采用将所有字段保存为"字段"在你的数据库中。假设您有一个表"字段",管理员添加的字段,将在此表中添加一个条目。类似地创建表单,整个应用程序方法可以是这样一种方式,即在应用程序启动时创建所有字段。可能会帮助!!