Sql 将多个属性作为外键插入

Sql 将多个属性作为外键插入,sql,database-design,foreign-keys,Sql,Database Design,Foreign Keys,我有两张桌子:讲师和系 讲师表包含以下列: id, email, phone, expertise, dept_id. 部门表包含以下内容: 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 Scienc

我有两张桌子:
讲师

讲师
表包含以下列:

id, email, phone, expertise, dept_id.
部门
表包含以下内容:

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)
部门表格

(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个以上的专业知识领域,因此我认为应该单独为专业知识创建另一个表。但是如何在讲师表中插入多个专业知识属性呢?

仅更改
讲师表并不能真正做到这一点。通常,通过创建单独的表来处理多值属性。在本例中,您将创建一个表来保存专家属性,另一个表用于将专家与讲师关联。作为奖励,这也有助于防止在描述专业知识时出现不一致

生成的表可能如下所示:

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

讲师表确实需要在这个设计中做一个更改-删除专业领域,对吧,我错过了。我对答案进行了编辑,以反映这一点。在您进行编辑时,讲师可能还拥有多个电子邮件地址和多个电话号码,这可以引导您找到更多的映射表…:)我创建了表,但如何在讲师中显示部门id的部门名称?我应该使用内部联接吗?这就是联接的用途<代码>从讲师中选择讲师.id、部门.dept\u名称,其中讲师.dept\u id=部门.dept\u id