一 分析
我的招聘网包括三个实体:应聘人员、企业、岗位。
应聘人员和岗位之间的申请关系是多对多的关系:一个应聘人员可以申请多个岗位,同样一个岗位也能被许多应聘人员申请。
企业与岗位需求应该是一对多的关系,一个企业可以发布多个岗位需求,但是每个岗位需求只对应一个企业。
应聘人员、企业与岗位之间存在一个上岗关系,这个上岗关系是1:1:1。
二 基本表设计
1 共设计8张表
2 worker表
CREATE TABLE `worker` (
`wID` int AUTO_INCREMENT,
`wName` char(20) NOT NULL,
`sex` char(2) NOT NULL,
`birth` date NOT NULL,
`wType` char(50) NOT NULL,
`title` char(30) NOT NULL,
`years` smallint NOT NULL,
`major` char(30) NOT NULL,
`education` char(30) NOT NULL,
PRIMARY KEY (`wID`)
);
3 workuser表
CREATE TABLE `workuser` (
`wuser` char(40) NOT NULL,
`wpassword` char(50) DEFAULT NULL,
`wID` int(11) DEFAULT NULL,
FOREIGN KEY(wID) REFERENCES worker(wID),
PRIMARY KEY (`wuser`)
);
4 company表
CREATE TABLE `company` (
`cID` int NOT NULL,
`cName` char(30) DEFAULT NULL,
`cType` char(30) DEFAULT NULL,
`leader` char(20) DEFAULT NULL,
`tel` varchar(11) DEFAULT NULL,
PRIMARY KEY (`cID`)
);
5 companyuser表
CREATE TABLE `companyuser` (
`cuser` char(40) NOT NULL,
`cpassword` char(50) DEFAULT NULL,
`cID` int DEFAULT NULL,
PRIMARY KEY (`cuser`),
FOREIGN KEY(cID) REFERENCES company(cID)
);
6 job表
CREATE TABLE `job` (
`jID` int NOT NULL,
`jName` char(30) DEFAULT NULL,
`educationReq` char(30) DEFAULT NULL,
`titleReq` char(30) DEFAULT NULL,
`jType` char(30) DEFAULT NULL,
`yearsReq` smallint DEFAULT NULL,
PRIMARY KEY (`jID`)
);
7 need表
CREATE TABLE `need` (
`jID` int NOT NULL,
`cID` int NOT NULL,
`putDate` date DEFAULT NULL,
`people` smallint DEFAULT NULL,
`payment` int DEFAULT NULL,
PRIMARY KEY (`jID`,`cID`),
FOREIGN KEY(jID) REFERENCES job(jID),
FOREIGN KEY(cID) REFERENCES company(cID)
);
8 apply表
CREATE TABLE `apply` (
`applyNum` int NOT NULL,
`wID` int DEFAULT NULL,
`jID` int DEFAULT NULL,
`applyDate` date DEFAULT NULL,
`other` varchar(100) DEFAULT NULL,
PRIMARY KEY (`applyNum`),
FOREIGN KEY(wID) REFERENCES worker(wID),
FOREIGN KEY(jID) REFERENCES job(jID)
);
9 pair表
CREATE TABLE `pair` (
`wID` int NOT NULL,
`jID` int NOT NULL,
`cID` int NOT NULL,
`pairDate` date DEFAULT NULL,
PRIMARY KEY (`wID`,`jID`,`cID`),
FOREIGN KEY(wID) REFERENCES worker(wID),
FOREIGN KEY(jID) REFERENCES job(jID),
FOREIGN KEY(cID) REFERENCES company(cID)
);