【问题标题】:Database Design - Form Builder数据库设计 - 表单生成器
【发布时间】:2015-09-30 20:46:16
【问题描述】:

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

例如默认情况下,用户将具有名字、姓氏、电子邮件等属性。但管理员可以添加更多字段,例如生日、地址、周年纪念日。

为此,我决定使用表单构建器方法。

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

我决定的一种方法是:http://goo.gl/sMVuWl

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

如果您需要更多信息,请告诉我。

我使用的是 Spring MVC + hibernate,后端是 MySQL

【问题讨论】:

  • 为什么不使用 {index, key and value} 方法?大多数时候它工作正常。
  • 请详细说明一下。我不确定索引、键和值方法。
  • 假设你的表 structure 是:{id(PK),iduser(INDX),key(VARCHAR),value(TEXT)} 现在让我们在你的表 structure 中插入一些寄存器,如下所示插入structure 值(1,1,'first_name','jhonson'),插入structure 值(2,1,'last_name','harris'),插入structure 值(3,1 , 'email', 'jhonson@domain.tld'), INSERT INTO structure VALUES (4,2, 'first_name', 'ozzy'), INSERT INTO structure VALUES (5,2, 'last_name', ' osbourne'),插入structure 值(6,2,'电子邮件','admin@domain.tld'),插入structure 值(7,2,'生日','1945-01-01' )
  • 只是一个简单的示例,您可以使用基于 iduser(INDEX) 的键值对来构建表单,以区分用户和管理员。

标签: mysql database database-design


【解决方案1】:

它将解决方案mentioned in the question 包含表单定义元数据。
该结构将用于为用户呈现表单。
表单履行数据将需要其他表格。

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

希望这会有所帮助。

【讨论】:

  • 是的...这种设计将帮助我容纳数据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-18
  • 2012-02-19
  • 2023-03-06
  • 2019-02-27
  • 2015-12-27
  • 1970-01-01
相关资源
最近更新 更多