Mysql 数据库设计-表单生成器

Mysql 数据库设计-表单生成器,mysql,database,database-design,Mysql,Database,Database Design,我正在用SpringMVC和hibernate开发一个应用程序,其中某些表单可以由管理员动态配置 例如,默认情况下,用户将具有firstname、lastname、email等属性。但管理员可以添加更多字段,如生日、地址、周年纪念 为此,我决定使用表单生成器方法 如何为这样的系统设计数据库 我决定的一个办法是: 但这里也不清楚如何为新创建的字段存储数据 如果你需要更多信息,一定要告诉我 我使用的是SpringMVC+hibernate,后端是MySQL,解决方案保存表单定义元数据 该结构将用于为

我正在用SpringMVC和hibernate开发一个应用程序,其中某些表单可以由管理员动态配置

例如,默认情况下,用户将具有firstname、lastname、email等属性。但管理员可以添加更多字段,如生日、地址、周年纪念

为此,我决定使用表单生成器方法

如何为这样的系统设计数据库

我决定的一个办法是:

但这里也不清楚如何为新创建的字段存储数据

如果你需要更多信息,一定要告诉我

我使用的是SpringMVC+hibernate,后端是MySQL,解决方案保存表单定义元数据
该结构将用于为用户呈现表单。
表单履行数据将需要其他表。

form-data:
---------
id PK
user-id FK
form-id FK
fulfillment-date
last-update-date
ETC...

form-element-data
-----------------
id PK
form-data-id FK
element-id FK
value (text)
ETC...

希望这有帮助。

为什么不使用{index,key和value}方法?大多数情况下都很好。请详细说明一下。我不确定索引、键和值的方法。假设您的表
structure
是:{id(PK)、iduser(INDX)、key(VARCHAR)、value(TEXT)}现在让我们在表
structure
中插入一些寄存器,如下插入
structure
值(1,1,'first_name',jhonson'),插入
structure
值(2,1,'姓氏','哈里斯'),插入
结构
值(3,1,'电子邮件','jhonson@domain.tld”),插入
结构
值(4,2,'first_name','ozy'),插入
结构
值(5,2,'last_name','osbourne'),插入
结构
值(6,2,'email','admin@domain.tld'),插入到
结构中
值(7,2,'birthdate','1945-01-01')只是一个简单的示例,您可以基于iduser(索引)使用它们的键值对构建表单,以区分用户和管理员。是的……此设计将帮助我容纳数据