1

我正在使用 cakephp,我需要让用户设计自己的表单(这只会在设置向导阶段完成一次,实际使用中创建了大约 12 个表单)。始终需要的表是用户、组和日志、设置。实际上,这是一个用户友好的数据库应用程序。

我正在考虑创建视图并有两个实际的表来存储表单和随后的数据:

Forms [id | name   | structure                                                   ]
      [1  | Details| {id:{type:key}q2:{type:text;validation:{select:male..}..}   ]
      [2  | Car    | {id:{type:key};car:{type:text;validation:{select:Honda... }}]

“结构”列将包含列出字段、类型和验证规则的 json 或 xml 字符串。

Forms_data [id | form_id | survey_id | key  | value ]
           [1  | 1       | 1         | q1   |  Male ]
           [2  | 1       | 1         | q2   | 1/1/76]
           [3  | 2       | 1         | Car  |  Honda]
           [4  | 2       | 1         | Eng  | Petrol]
           [5  | 1       | 2         | q1   |  Fem  ]
           [6  | 1       | 2         | q2   | 2/3/81]
           [7  | 2       | 2         | Car  |  Ford ]
           [8  | 2       | 2         | Eng  | Diesel]

Forms_data 表将包含表单的每个字段的数据,survey_id 表示表单所针对的对象,一个被调查的人可以针对他们完成许多表单。键将是 varchar,但值必须是最大可能数据类型的大小(例如“段落文本”)。

或者我应该让用户(通过参数/清理等)执行“CREATE TABLE”并在数据库中创建真正的表,这样我就可以充分利用系统查询和优化,并在 cakephp 中让所有神奇的功能正常工作?

4

1 回答 1

1

这取决于您以后要对数据做什么以及会有多少。DBMS 系统(如 MySQL)处理大量数据的速度非常快。您还可以以非常复杂的方式查询数据,而不是您的其他选择。权衡是更复杂一点。我几乎总是支持数据库解决方案。它为您提供最大的灵活性。

于 2013-06-18T12:05:48.557 回答