我会尝试解释我的问题,看看是否能得到一些帮助。
我正在尝试设计一个数据库。该数据库将包含用户和表单,但我的问题是如何设计它来保存表单。
表单将由管理员在需要时创建,因此在数据库中我有一个表来保存表单名称。另一个表包含所有表单的所有可能字段,另一个表将保存表单名称和字段,以便我可以看到确定的表单具有的所有字段。
示例:在 FormName 表中,我有 3 个表单名称:个人信息、计算机知识和爱好。在字段表中,我有例如姓名、地址、电话、操作系统、编程、骑自行车、玩电脑游戏。
我决定创建一个表单,其中姓名为 1(个人信息),字段为 1、2、3(姓名、地址、电话)。此信息记录在另一个名为完整表单的表中,其中保存了表单名称 id 和字段 id。这对我来说非常清楚(也许我错了)。
棘手的部分现在来了。某些用户决定填写个人信息表单,因此必须显示表单的名称和每个字段。当用户填写表单时,必须以某种方式保存它,以便管理员可以看到表单的名称、该表单具有的每个字段、谁填写了该表单以及每个字段中写入的信息。所有这些不仅应该显示在数据库中,还应该以某种不同的方式(例如表格)显示。
顺便说一句...我正在使用 cakephp 和 mysql。
提前致谢,
亚伯拉罕
最佳答案
据我了解,设置如下所示。正如你所说,我们有 3 个表:
'formname' = id, name(对于表单名称) 'formfields' = id、字段名称、属性(对于表单名称,添加属性以防需要) 'forms' = id, formname_id, formfields_id, formfields_order(准备好的表单以及在表单中订购字段的可能性)
您还应该创建额外的表来存储提交的值 'forms_values' = id, forms_id, value(在本例中每个字段对应一行)
如果您想将这些值与特定用户相关联,则应再创建一个表 'users_forms' = forms_values_id, user_id
当然也应该有用户表。
我的建议是删除表“formnames”并将表单名称放入“forms”表中。 然后表“forms”将包含 id、form_name、formfields_id、formfields_order
希望这个答案能让您前进:)
关于php - 表单数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16786904/