我正在构建一个包含大量类别的网站,每个类别都有自己的特定表单字段。因为类别太多,我想将这些表单字段存储在数据库中。
类别存储在一个
category
表中:id | name ------------- 1 | Car info
该类别的字段存储在
category_field
表中:id | fk_id_category | type | label ------------------------------------------------------------- 1 | 1 | text | Your name 2 | 1 | radio | What type of car do your drive?
如果 a
category_field
有一些用户可以从中选择的预定义选项,那么这些选项将存储在一个category_field_option
表中:id | fk_id_category_field | label ----------------------------------------- 1 | 2 | 'Convertible' 2 | 2 | 'Truck' 3 | 2 | 'Minivan'
现在,当用户填写表单时,我们希望在表格中保存对此的引用form_entry
:
id | fk_id_user | fk_id_category
--------------------------------
1 | 1 | 1
该表单条目的详细信息保存在form_entry_details
表格中。然而:
如果
category_field.type
是,text
我们应该将答案保存为字符串id | fk_id_form_entry | fk_id_category_field | [answer] ------------------------------------------------------- 1 | 1 | 1 | John Doe
如果
category_field.type
是radio
,我想将外键保存到category_field_option
id | fk_id_form_entry | fk_id_category_field | [fk_id_category_field_option] -------------------------------------------------------------------------- 2 | 1 | 2 | 2
我该如何解决这个问题?我知道我可以将它存储fk_id_category_field_option
为一个字符串,但我需要它来实际引用category_field_option
表,因为我使用的是 ORM(Doctrine 1.2.4)。