【发布时间】:2015-12-27 09:57:56
【问题描述】:
我需要关于数据库和架构方面的建议。
我正在开发一个应用程序,它在某些区域使用表单构建器方法。例如。用户注册,除了用户的一些基本字段外,管理员可以配置额外的字段:
我在数据库中有几个表将存储这些新创建的字段的元数据:
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;
}
}
现在,如果管理员为用户添加或配置更多字段,例如出生日期、地址、城市、国家/地区、密码,我该如何存储这些字段的值?
我想到的一种方法是创建一个表,例如用户自定义字段?但是如何为动态创建的表的自定义字段动态休眠映射?
这是在 Web 应用程序中构建动态表单的好方法吗?
【问题讨论】:
-
好问题。我一直在开发一个需要这些功能的 CRM Web 应用程序。此刻我有了一些想法。
-
您好,您能否提供更多关于您如何为此设计构建初始界面以及您使用了哪些技术的信息?我正在尝试构建类似的东西,但不知道从哪里开始,所以任何反馈都将不胜感激。
标签: java spring forms hibernate formbuilder