1

我想构建一个可以存储动态字段的服务。例如,注册用户可以在应用程序的特定区域中动态创建、读取、更新和删除通用表单字段,并将动态表单保存在数据库中。这些通用表单字段将存储用户需要的任何信息。解决此类问题的最佳方法是什么?(这是一个数据库设计问题)

4

2 回答 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 回答