2011-12-08 69 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

正是我需要听到的。谢谢。 –