我正在使用 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 中让所有神奇的功能正常工作?