多数のカテゴリを含む Web サイトを構築しており、それぞれに固有のフォーム フィールドがあります。カテゴリが非常に多いため、それらのフォーム フィールドをデータベースに保存したいと考えました。
カテゴリは
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?
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
どうすればこれを解決できますか? を文字列として保存できることはわかっていますが、ORM (Doctrine 1.2.4) を使用しているfk_id_category_field_option
ため、実際にテーブルを参照する必要があります。category_field_option