我想构建一个可以存储动态字段的服务。例如,注册用户可以在应用程序的特定区域中动态创建、读取、更新和删除通用表单字段,并将动态表单保存在数据库中。这些通用表单字段将存储用户需要的任何信息。解决此类问题的最佳方法是什么?(这是一个数据库设计问题)
问问题
468 次
2 回答
1
为什么不考虑像 MongoDB、CouchDB、Riak 等这样的无 SQL 文档存储?
于 2012-09-30T00:41:17.873 回答
0
我不得不做一次类似的事情。
我会使用的最小设计是这样的:
您需要三个表来定义表格 metadada:
形式:
- 表单ID (PK)
- 表格名称
- ETC
表单域:
- 表单字段 ID (PK)
- 字段ID
- 表单ID
领域:
- 字段 ID (PK)
- 字段名
- 字段类型
- ETC
还有两个表来存储表单实例数据:
表单实例:
- FormInstanceID (PK)
- 表单ID
- 用户身份
- ETC
表单域实例:
- FormFieldInstanceID (PK)
- 表单实例ID
- 表单字段ID
- 值(这必须是文本,您必须管理类型转换)
这不是我所知道的最好的设计,但你甚至可以用它来支持多值字段。类型转换应在应用程序级别进行管理
于 2012-09-04T15:49:49.167 回答