将多个属性作为外键插入

时间:2012-05-01 14:42:52

标签: sql database-design foreign-keys

我有2个表:LecturerDepartment

Lecturer表包含以下列:

id, email, phone, expertise, dept_id.

Department表包含以下内容:

dept_id, dept_name, dept_code, dept_program.

样本数据如下:

讲师

(id=1, email= a@a.com, phone= 9999, expertise= multimedia and programming, dept_id=1)

部门

(id=1, dept_name=Computer Science, dept_code=CS, dept_program=Bachelor of Comp Science)

专业知识专栏有几个值,一些讲师可能有超过5个专业领域,所以我想我应该创建另一个专业知识表。但是如何将多种专业知识插入讲师表?

1 个答案:

答案 0 :(得分:5)

通过仅更改lecturer表,您无法真正做到这一点。通常,您可以通过创建单独的表来处理多值属性。在这种情况下,您将创建一个表来保存专业知识属性,另一个表用于将专家与讲师联系起来。作为奖励,这也有助于防止在描述专业知识时出现不一致。

结果表可能如下所示:

department(dept_id, dept_name, dept_code, dept_program)
lecturer(id, email, phone, dept_id*)
expertise(id, description)
lecturer_expertise(lect_id*, expertise_id*)