企业人事管理

CREATE DATABASE rsgl CHARSET utf8;

USE rsgl;

/*车间表*/

CREATE TABLE workshop(

wsno CHAR(20) PRIMARY KEY COMMENT '车间编号', 

wsname CHAR(20) COMMENT '车间名',

wsaddr CHAR(20) COMMENT '地址',

bfno CHAR(20) COMMENT '分厂编号',

sno CHAR(20) COMMENT '车间主任'

)CHARSET utf8;

/*职工表*/

CREATE TABLE staff(

sno CHAR(20) PRIMARY KEY COMMENT '职工号',

sname CHAR(8) COMMENT '职工姓名',

sex CHAR(2),

tel CHAR(13),

wsno CHAR(20),

FOREIGN KEY (wsno) REFERENCES workshop(wsno)

)CHARSET utf8;

/*为车间表添加外码约束,以表示车间与职工之间1:1联系*/

ALTER TABLE workshop

ADD

FOREIGN KEY (sno) REFERENCES staff(sno);

/*任务表*/

CREATE TABLE task(

tno CHAR(20) PRIMARY KEY COMMENT '任务编号',

tname CHAR(8) COMMENT '任务名',

tcontent TEXT COMMENT '任务内容'

)CHARSET utf8;

/* 奖励条例表*/

CREATE TABLE rewardregulation(

rno CHAR(20) PRIMARY KEY COMMENT '条例编号',

rname CHAR(20) COMMENT '条例名',

rcontent TEXT COMMENT '条例内容',

rstandard DECIMAL COMMENT '奖励金额标准'

)CHARSET utf8;

/*工作关系表*/

CREATE TABLE workerelation(

rno CHAR(20) ,

tno CHAR(20) ,

sno CHAR(20) ,

rewardmoney DECIMAL COMMENT '奖励金额',

rewarddate DATE COMMENT '奖励时间',

PRIMARY KEY(rno,tno,sno),

FOREIGN KEY (sno) REFERENCES staff(sno),

FOREIGN KEY (rno) REFERENCES rewardregulation(rno),

FOREIGN KEY (tno) REFERENCES task(tno)

)CHARSET utf8;

/*创建视图*/

CREATE VIEW  vstaffreward

AS

SELECT staff.sno,sname,tname,rname,rstandard,rewardmoney,rewarddate

FROM staff,workerelation,rewardregulation,task

WHERE workerelation.tno=task.tno AND workerelation.rno=rewardregulation.rno AND workerelation.sno=staff.sno;

/*插入一个职工(职工号:123,姓名:ABC,性别:男,电话:138)*/

INSERT INTO staff (sno,sname,sex,tel)VALUES('123','ABC','男','138');

/*是否所有的表的外码设置都可以在创建表(create table)时一并完成?为什么?*/

有的不可以一次一并完成。

因为:

一般情况下1:1是把两个是实体的表合并,或各建一张表,把任意一方主码放到另一方;1:n两个实体各一张表,把1的主码放到多方。

两个实体有1:1又有1:n,就不能按1:1合并了,只能按1:n形成两张表,把1的主码加到n方解决1:n,再把n的主码加到1解决1:1。这样的话两张表主码互为另一张表的外码,建表时,有一个表外码在一开始建表时,就不能声明外码,需要另一个表建好后,再通过修改表添加外码方式完成。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值