2011-12-08 119 views
0

我的數據庫中有兩個表。一個叫forms,另一個叫form_fieldsform_fields將包含任何表格可能具有的字段列表......名字,姓氏,電子郵件,地址,高度,體重等... forms將是可能包含或不包含任何數量的這些字段的唯一表單的列表在form_fields數據庫交叉表關聯邏輯

所以,我的問題是,使用form_fields中的數據與forms相關的標準做法是什麼?

我應該

a)創建在forms列稱爲field_array並創建涉及每個字段的索引號(主鍵)在form_fields索引數組?

b)中創建的關係表並插入兩列的列選擇爲每表單字段。一列是表單唯一索引,另一列是選擇的表單字段唯一索引?

我覺得在forms的字段中填充逗號分隔的數字有點奇怪。我已經在這幾年獨立工作了,所以如果對這些類型的交叉表關聯有一個可靠和真實的方法,我並不總是樂觀的。

在此先感謝。

回答

2

您應該使用關聯或關係或聯結表方法。

你的新表可能是:

CREATE TABLE Forms_Using_Fields 
(
    FormID INTEGER NOT NULL REFERENCES Forms(Id), 
    FieldID INTEGER NOT NULL REFERENCES Form_Fields(Id), 
    PRIMARY KEY (FormId, FieldId), 
    Seqno  INTEGER NOT NULL, -- Sequence number of field on form 
    ... 
); 
+0

正是我需要聽到的。謝謝。 –