3.7.2 设计数据表(1)
本系统数据库名称为VC003,包含了员工表(emp)、部门表(dep)、工资表(wageinfo)、用户表(users)、考勤表(checkinfo)、节假日表(holiday)和保存工资计算公式的表(wagecal)。下面提供系统运行时动态创建数据库的方法,数据库的名称为VC003,对应的SQL语句如下:
- 1. IF EXISTS (SELECT name FROM sysdatabases
WHERE name = 'HMSys') - /*存在数据库HMSys*/
- 2. DROP DATABASE [HMSys]
/*删除数据库HMSys*/ - 3. GO
- 4. CREATE DATABASE [HMSys] ON
/*创建数据库HMSys*/ - 5. (
- 6. NAME = ' HMSys _dat',
- 7. FILENAME = 'C:\VC003.mdf' ,
- 8. SIZE = 10,
- 9. MAXSIZE = 100,
- 10. FILEGROWTH = 10%
- 11. )
- 12. LOG ON
/*设置日志文件属性*/ - 13. (
- 14. NAME = ' HMSys_log',
- 15. FILENAME = 'C:\VC003_log.ldf' ,
- 16. SIZE = 5,
- 17. MAXSIZE = 25,
- 18. FILEGROWTH = 5
- 19. )
下面将分别对数据库中的各个表进行介绍。
(1) 员工表(emp):用于保存员工的基本信息,其主要字段为id,具体设计如表3-1所示。
表3-1 员工表(emp)
|
字段名称< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> |
数据类型 |
字段大小 |
是否为空 |
说 明 |
|
id |
int |
4 |
Not Null |
主键,编号 |
|
name |
varchar |
20 |
Not Null |
姓名 |
|
sex |
varchar |
2 |
Not Null |
性别 |
|
age |
int |
4 |
Not Null |
年龄 |
|
addr |
varchar |
200 |
Null |
籍贯 |
|
depart |
varchar |
20 |
Not Null |
部门 |
|
birth |
varchar |
20 |
Null |
出生日期 |
|
phone |
varchar |
20 |
Null |
联系方式 |
|
more |
varchar |
500 |
Null |
备注 |
|
photo |
Image |
16 |
Null |
照片 |
建立该表的SQL语句如下:
- CREATE TABLE Emp ( /*创建数据表*/
- id int NOT NULL , /*编号*/
- [name] varchar (20) NOT NULL , /*姓名*/
- age int NOT NULL , /*年龄*/
- sex varchar (2) NOT NULL , /*性别*/
- addr varchar (200), /*籍贯*/
- depart varchar (20) NOT NULL , /*部门*/
- birth varchar (20), /*出生日期*/
- phone varchar (20), /*联系方式*/
- more varchar (500), /*备注*/
- photo image /*照片*/
- )
- GO
(2) 部门表(dep):用于保存部门的基本信息,其主要字段为id,详细情况如表3-2所示。
表3-2 部门表(dep)
|
字段名称 |
数据类型 |
字段大小 |
是否为空 |
说 明 |
|
id |
int |
4 |
Not Null |
主键,编号 |
|
name |
varchar |
20 |
Not Null |
姓名 |
|
manager |
varchar |
20 |
Null |
主管 |
|
phone |
int |
4 |
Null |
电话 |
|
more |
varchar |
200 |
Null |
备注 |
建立该表的SQL语句如下:
- CREATE TABLE Dep ( /*创建数据表*/
- id int NOT NULL , /*编号*/
- [name] varchar (20) NOT NULL , /*姓名*/
- manager varchar (20) , /*主管*/
- phone varchar (20), /*电话*/
- more varchar (200), /*备注*/
- )
- GO
(3) 工资表(wageinfo):用于工资的基本信息,其主要字段为id,详细情况如表3-3所示。
表3-3 工资表(wageinfo)
|
字段名称 |
数据类型 |
字段大小 |
可否为空 |
说 明 |
|
id |
int |
4 |
Not Null |
员工ID |
|
wage |
float |
8 |
Not Null |
基本工资 |
|
dep |
varchar |
100 |
Not Null |
员工部门 |
|
date |
varchar |
50 |
Not Null |
进入时间 |
建立该表的SQL语句如下:
- CREATE TABLE wageinfo( /*创建数据表*/
- id int NOT NULL , /*编号*/
- wage float NOT NULL , /*基本工资*/
- dep varchar(50) NOT NULL, /*员工部门*/
- date varchar(50)NOT NULL /*进入时间*/
- )
- GO
(4) 用户表(users):该表用来保存用户的信息,其主要字段为users,各字段的详细信息如表3-4所示。
表3-4 用户表(users)
|
字段名称 |
数据类型 |
字段大小 |
可否为空 |
说 明 |
|
users |
varchar |
50 |
Not Null |
主键,用户名 |
|
pwd |
varchar |
50 |
Not Null |
密码 |
|
type |
int |
4 |
Not Null |
用户类型 |
建立该表的SQL语句如下:
- CREATE TABLE users ( /*创建数据表*/
- users varchar(50) NOT NULL , /*用户名*/
- pwd varchar (50) NOT NULL , /*密码*/
- type int NOT NULL /*用户类型*/
- )
- GO