购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4 案例:创建职员与部门数据表

数据表的创建是数据库环境中最基本的管理操作,本节将以一个信息系统中相关模块的数据表设计为载体,演示、讲解数据表创建过程的实现方式,以及在进行数据表设计时应注意的相关问题。

1.功能需求描述

在一个人力资源信息系统的员工管理模块有职员表与部门表,两张数据表的结构及关系如下,请按相关要求在数据库环境中创建出相关数据表。

1)职员表中有员工号、姓名、性别、生日、住址、工资、岗位、部门编号字段,相关结构如表2-4所示。

表2-4 职员(EMPLOYEE)表字段结构

2)部门表中部门编号、部门名称、办公地点、部门主管、部门员工数、部门职责字段,相关结构如表2-5所示。

表2-5 部门(DEPARTMENT)表字段结构

3)员工号为职员表主键字段,部门编号为部门表的主键字段。

4)部门表的部门编号与职员表的部门编号两字段存在主外键引用关系。

2.功能操作实现

本案例中数据表的创建方式两种,一种是通过GUI工具操作,另一种是通过SQL命令脚本创建的方式实现,以下分别对这两种方式作相关说明。

(1)使用GUI工具创建数据表

1)在GUI工具的“Schemata”栏中右键单击,在弹出的快捷菜单中选择“Create New Schema”命令,如图2-24所示。

图2-24 选择“Create New Schema”命令

2)在弹出的“Create new Schema”窗体上输入库节点的名称“hr”,单击“OK”按钮,则创建好库节点“hr”,如图2-25所示。

图2-25 “Create new Schema”窗体

3)右键单击“hr”库节点,并在弹出的快捷菜单中选择“Create New Table”命令,如图2-26所示。

4)在弹出的“MySQL Table Editor”窗体中,输入数据表名称“department”,并在“Column Name”栏输入本数据表的相关字段:dep_no、dep_name、dep_address、dep_leader、dep_persons、dep_desc,在“Datatype”栏输入相关字段对应的数据类型,最后单击“Apply Changes”按钮,则可创建部门表,如图2-27所示。在创建窗体中,默认以第一个字段作为数据表的主键,这里“dep_no”字段将作为部门表的主键字段。

5)用与上一步同样的方法创建职员表,在“MySQL Table Editor”窗体中,输入数据表名称“employee”,并在“Column Name”栏输入本数据表的相关字段:emp_no、name、gender、birthday、address、salary、position、dep_no,在“Datatype”栏输入相关字段对应的数据类型,如图2-28所示。

图2-26 选择“Create New Table”命令

图2-27 创建部门表

6)职员表字段定义好后,还需要给部门编号“dep_no”字段添加外键约束,使其与部门表中的“dep_no”字段建立引用关联关系。如图2-29所示。

图2-28 创建职员表

图2-29 为职员表添加外键约束

在职员表的创建窗体选择“Foreign Keys”选项卡,单击“+”按钮,弹出“Add Foreign Key”窗体,直接单击“OK”按钮,然后单击“Ref.Table”输入栏右侧的下拉箭头,在弹出的下拉列表中选择“department”项,最后单击“Apply Changes”按钮,即可完成职员表的创建,并为其添加上外键引用关系。

至此,职员表与部门表在数据库环境中创建完成,两张数据表之间通过部门编号(dep_no)字段来建立引用关联关系,数据表创建完成后在“hr”库节点中,如图2-30所示。

图2-30 “hr”库节点数据表

(2)使用SQL命令脚本创建数据表

1)在MySQL数据库环境中先创建“hr”库节点,然后进入本库节点中,最后才能创建职员表与部门表。在创建“hr”库节点前,先检查数据库环境中“hr”库节点是否已经存在,如已经存在则可以先删除库节点。

检查并删除“hr”库节点语句为:

创建“hr”库节点语句为:

进入“hr”库节点语句为:

2)使用以下SQL语句创建部门表,在创建脚本中指定“dep_no”字段为本表的主键。在创建数据表前,同样先检查部门表是否已经存在,如存在则先删除该表。

3)使用以下SQL语句创建职员表,在创建脚本中指定“emp_no”字段为本表的主键,并指定“dep_no”字段以外键的形式去引用部门表的对应字段。在创建数据表前,先检查部门表是否已经存在,如存在则先删除该表。

至此,也实现了以SQL命令脚本的方式来构建职员表与部门表,其与通过GUI工具操作方式实现对数据表的创建与引用效果是相同的,但效率比通过GUI的方式效率更高,在多数情况下会选择以SQL命令脚本的方式来进行数据库环境初始化构建。 MPAqxZYJtPIC7JoC8RWwcu/3UhFCttzxDyG91V6qosqPHKTTkesiTHS2tbBQQqXp

点击中间区域
呼出菜单
上一章
目录
下一章
×