--------语法
--建立视图
--if exists(select * from sysobjects where name='视图名')
-- drop view 视图名
--go
--create view 视图名
--as
--select 字段名 from 表名 [条件]
--go
--主外健约束语句没有执行
use T90ERP
go
--***********人力资源
--部门表:Depet
if exists(select * from sysobjects where name='Depet')
drop table Depet
go
create table Depet
(
dept_id Int primary key identity(1,1) not null, --部门编号 主键,自增
dept_name Varchar(20) not null --部门名称
)
----约束
--alter table Depet add constraint UQ_dept_name unique (dept_name)
go
--职位表:Post
if exists(select * from sysobjects where name='Post')
drop table Post
go
create table Post
(
Post_id Int primary key identity(1,1) not null, --职位编号 主键 自增
Post_name Varchar(50) not null, --职位名称 唯一
Post_money Money not null, --职位工资
Dept_id int not null --部门编号 外 Int 级联删除
)
----约束
--alter table post add constraint UQ_post_name unique (post_name)
alter table post add constraint FK_post_deptId foreign key(post_deptId) references depet(dept_id)
go
--员工信息表:Employee
if exists(select * from sysobjects where name='Employee')
drop table Employee
go
create table Employee
(
Emp_id Int primary key identity(1,1) not null, --员工信息编号 主键,自增
Emp_number Varchar(50) not null, --员工工号 唯一
Emp_postId Int not null, --职位编号 外键 级联删除
Emp_hire Datetime not null, --录用时间
Emp_state Bit not null, --状态 默认1 (1在职/0离职)
)
----约束
--alter table Employee add constraint UQ_emp_number unique (emp_number)
alter table Employee add constraint FK_emp_postId foreign key (emp_postId) references post(post_id)
--alter table Employee add constraint DF_emp_state default(1) for emp_state
go
--简历表:Resume
if exists(select * from sysobjects where name='Resume')
drop table Resume
go
create table Resume
(
Res_id Int primary key identity(1,1) not null, --职员信息ID 主键 非空自增 Int
Emp_id Int not null, --职员ID 外键
Res_name Varchar(50) not null, --真实姓名
Res_englishname Varchar(50) null, --英文名 空
Res_idcard Varchar(19) not null, --身份证号 唯一索引 只有18位数字或18位数字加X
Res_sex bit not null, --性别 默认1 男 只有男和女两种
Res_bornDate datetime not null, --出生年月
Res_nativeplace varchar(50) not null, --籍贯
Res_nation Varchar(50) not null, --民族 默认汉族
Res_health text null, --健康状况 空 默认健康
Res_diploma Varchar(50) not null, --学历
Res_address Varchar(50) null, --联系地址 空,默认地址不详
Res_Tel Varchar(50) not null, --电话 只能是11为数字
Res_photo image null --照片 空
)
----约束
alter table Resume add constraint FK_res_empid foreign key (res_empid) references Employee(emp_id)
--alter table Resume add constraint UQ_res_idcard unique (res_idcard)
--alter table Resume add constraint CK_res_idcard check (res_idcard like '[1-9][1-9][1-9][1-9][1-9][1-9][1-9][1-9]
--[1-9][1-9][1-9][1-9][1-9][1-9][1-9][1-9][1-9][1-9]' or res_idcard like '[1-9][1-9][1-9][1-9][1-9][1-9][1-9][1-9]
--[1-9][1-9][1-9][1-9][1-9][1-9][1-9][1-9][1-9][1-9]X')
--alter table Resume add constraint DF_res_sex default (1) for res_sex
--alter table Resume add constraint CK_res_sex check(res_sex=1 or res_sex=0)
--alter table Resume add constraint DF_res_nation default ('汉族') for res_nation
--alter table Resume add constraint DF_res_health default ('健康') for res_health
--alter table Resume add constraint DF_res_health defatult(1) for res_health
--alter table Resume add constraint DF_res_address default ('地址不详') for res_address
--alter table Resume add constraint CK_res_tel check(len(res_tel)=11)
go
--考勤类型表:CheckType
if exists(select * from sysobjects where name='CheckType')
drop table CheckType
create table CheckType
(
Checkt_id int primary key identity(1,1) not null, --考勤类型 主键 自增 Int
Checkt_name varchar(50) not null --考勤名称(干什么) Varchar(50)
)
go
--考勤表:Check
if exists(select * from sysobjects where name='CheckInfo')
drop table CheckInfo
create table CheckInfo
(
Check_id int primary key identity(1,1) not null, --考勤id 主键 自增 Int
Emp_id int not null, --员工id 外键 Int
Check_hire datetime not null, --考勤开始时间 开始时间必须 Datetime
Check_end datetime not null, --考勤结束时间 要在结束时间之前 Datatime
Checkt_id int not null, --考勤类型 外键 Int
Check_gtime int not null, --工休天数 Int
check_time int not null --扣薪天数 Int
)
----约束
alter table CheckInfo add constraint FK_check_empId foreign key (check_empId) references Employee(emp_id)
alter table CheckInfo add constraint FK_check_checktId foreign key (check_empId) references checkt(checkt_id)
--alter table CheckInfo add constraint CK_check_hire check(check_hirecheck_hire)
go
--培训管理:Train
if exists(select * from sysobjects where name='Train')
drop table Train
create table Train
(
Train_id int primary key identity(1,1) not null, --培训编号 主键 自增 Int
Train_time datetime not null, --培训日期 Datetime
Train_address varchar(200) not null, --地址 Varchar(200)
Train_content text not null, --内容 text
Emp_id int not null, --职员编号 Int
Train_teacher varchar(20) not null --讲师 Varchar(20)
)
go
--奖罚记录类型:PrizeAmerceType
if exists(select * from sysobjects where name='PrizeAmerceType')
drop table PrizeAmerceType
create table PrizeAmerceType
(
Prizet_id int primary key identity(1,1) not null, --奖罚记录类型id 主键 自增 Int
Prizet_name varchar(50) not null, --奖罚记录名称 Varchar(50)
Prizet_money money not null --奖罚金额 Money
)
go
--奖罚记录表:PrizeAmerceRecord
if exists(select * from sysobjects where name='PrizeAmerceRecord')
drop table PrizeAmerceRecord
create table PrizeAmerceRecord
(
Prize_id int primary key identity(1,1) not null, --奖罚记录id 主键 自增 Int
Emp_id int not null, --员工id 外键 Int
Prize_time datetime not null, --时间 Datetime
Prizet_id int not null, --引用奖罚类型id 外键 Int
Prize_desc text null, --描述 空,默认没有描述 text
)
----约束
--alter table PrizeAmerceRecord add constraint FK_prize_empid foreign key(prize_empId) references Employee(emp_id)
--alter table PrizeAmerceRecord add constraint FK_prize_prizetid foreign key(prize_prizetId) references PrizeAmerceType(prizet_id)
alter table PrizeAmerceRecord add constraint DF_prize_desc default('没有描述') for prize_desc
go
--档案:Record
if exists(select * from sysobjects where name='Record')
drop table Record
create table Record
(
Re_id int primary key identity(1,1) not null, --档案id 主键 自增 Int
Re_code varchar(50) not null, --档案代码 日期+随即数生成 Varchar(50)
Emp_id int not null, --员工id 外键 Int
Prize_id int not null --奖罚记录id 外键 Int
)
----约束
--alter table Record add constraint FK_re_empId foreign key (re_empId) references Employee(emp_id)
go
--薪资表:SalaryInfo
if exists(select * from sysobjects where name='SalaryInfo')
drop table SalaryInfo
create table SalaryInfo
(
Sal_id int primary key identity(1,1) not null, --薪水表ID 主键 自增 Int
Emp_id int not null, --职员ID 外键 Int
Sal_bonus money not null, --奖金 Money
Sal_deduct numeric(18,2) not null, --扣除 Numerica(18,2)
Sal_tax money not null, --扣税 Money 默认为0
Sal_sum money not null, --总薪水 Money
Sal_date smalldatetime not null --发放日期 smalldatetime
)
----约束
--alter table SalaryInfo add constraint FK_sal_empid foreign key (sal_empId) references Employee(emp_id)
go
--***********采购管理
--供应商级别:LevelInfo
if exists(select * from sysobjects where name='LevelInfo')
drop table LevelInfo
create table LevelInfo
(
Level_id int primary key identity(1,1) not null, --级别编号 主 自增 Int
Level_name varchar(10) not null --级别名称 Varchar(10)
)
go
--供应商:Victualer
if exists(select * from sysobjects where name='Victualer')
drop table Victualer
create table Victualer
(
Victu_id int primary key identity(1,1) not null, --供应商编号 主 自增 Int
Victu_name varchar(100) not null, --名称 Varchar(100)
Level_id int not null, --级别编号 外,LevelInfo表 Int
Victu_people varchar(20) not null, --联系人 Varchar(20)
Victu_telephone varchar(11) not null, --联系电话 Varvhar(11),必须是11位
Victu_email varchar(50) null, --邮件 空,必须符合邮件格式 Varchar(50)
Victu_address text not null, --联系地址 Text 默认地址不详
Victu_remark text null --备注 空,默认没有备注 Text
)
----约束
--alter table Victualer add constraint FK_Victu_levelId foreign key(Victu_levelId) references LevelInfo(Level_id)
alter table Victualer add constraint CK_Victu_telephone check(len(victu_telephone)=11)
alter table Victualer add constraint CK_Victu_email check(victu_email like '%@%.%')
alter table Victualer add constraint DF_Victu_remark default ('没有描述') for victu_remark
alter table Victualer add constraint DF_Victu_address default ('地址不详') for victu_address
go
--商品类别:Sort
if exists(select * from sysobjects where name='Sort')
drop table Sort
create table Sort
(
Sort_id int primary key identity(1,1) not null, --类别编号 主 自增 Int
Sort_name varchar(50) not null --类别名称 Varchar(50)
)
go
--商品规格表:Spec
if exists(select * from sysobjects where name='Spec')
drop table Spec
create table Spec
(
Spec_id int primary key identity(1,1) not null, --规格编号 主 自增 Int
Spec_name varchar(50) not null --规格名称 Varchar(50)
)
go
--商品表:Product
if exists(select * from sysobjects where name='Product')
drop table Product
create table Product
(
Pro_id int primary key identity(1,1) not null, --商品编号 主 自增 Int
Pro_code varchar(20) not null, --商品代码 按日期+随机数生成,唯一 Varchar(20)
Pro_name varchar(50) not null, --商品名称 Varchar(50)
Sort_id int not null, --类别编号 外,Sort表 Int
Spec_id int not null, --规格编号 外,Spec表 Int
Pro_count int not null, --数量 Int
Pro_inPrice money not null, --进货价 Money
Pro_outPrice money not null, --销售价 Money
Victu_id int not null, --供应商编号 外,Victualer表 Int 级联删除
Pro_remark text null --备注 空,默认没有备注 Text
)
----约束
go
--询价单:AskPrice
if exists(select * from sysobjects where name='AskPrice')
drop table AskPrice
create table AskPrice
(
Ask_id int primary key identity(1,1) not null, --询价单编号 主 自增 Int
Victu_id int not null, --供应商编号 外,Victualer表 Int
Pro_id int not null, --商品编号 外,Product表 Int
ask_price money not null, --报价 Money
Ask_time datetime not null --添加时间 Datetime
)
----约束
go
--采购单: BuyBill
if exists(select * from sysobjects where name='BuyBill')
drop table BuyBill
create table BuyBill
(
Buybill_id int primary key identity(1,1) not null, --采购单编号 主 自增 Int
Buybill_num varchar(20) not null, --采购单据号 按日期+随机数生成,唯一 varchar(20)
Emp_id int not null, --采购员编号 外,职员表 Int
Buybill_time datetime not null, --采购时间 采购时间必须在交货时间之前 Datetime
Buybill_delitime datetime not null, --交货时间 Datetime
Buybill_remark text not null, --合同备注 Text
Buybill_Isexam bit not null --库管是否审批 bit
)
----约束
go
--采购明细表: BuyList
if exists(select * from sysobjects where name='BuyList')
drop table BuyList
create table BuyList
(
Buylist_id int primary key identity(1,1) not null, --采购明细编号 主 自增 Int
Buybill_id int not null, --采购单编号 外,Buybill表 Int
Pro_id int not null, --商品编号 外,Prduct表 Int
Buylist_Count int not null, --采购数量 Int
Buylist_price money not null, --采购价 Money
Victu_id int not null, --供应商编号 外,Vitcualer表 Int
Dsub_id int not null --采购单商品仓库编号 外,DepotSubarea表 Int
)
----约束
go
--采购付款单:PayBill
if exists(select * from sysobjects where name='PayBill')
drop table PayBill
create table PayBill
(
Pay_id int primary key identity(1,1) not null, --付款单编号 主 自增 Int
Buybill_id int not null, --采购单编号 外,Buybill表 Int
Pay_oncoming money not null, --此次付款 如果应付款分为几次付 Money
Pay_deal money not null, --应付款 则应付款应该要保持一致 Money
Emp_id int not null, --财务部审批人编号 外,职员表 Int
Pay_Isexam bit not null, --财务部是否审批 bit
Pay_remark text null --备注 空,默认没有备注 text
)
----约束
go
--采购退货单:MoveBill
if exists(select * from sysobjects where name='MoveBill')
drop table MoveBill
create table MoveBill
(
Move_id int primary key identity(1,1) not null, --退货单编号 主 自增 Int
Buybill_id int not null, --采购单编号 外,Buybill表 Int
Move_time datetime not null, --退单日期 退单日期必须是在采购日期之后 Datetime
Dsub_id int not null, --库管审批人编号 外, Int
Move_Isexam bit not null, --库管是否审批 Bit
Move_remark text null --备注 空,默认没有备注 Text
)
----约束
go
--***********仓库管理
--库区表:DepotSubarea
if exists(select * from sysobjects where name='DepotSubarea')
drop table DepotSubarea
create table DepotSubarea
(
Dsub_id int primary key identity(1,1) not null, --库区id 主键 自增 Int
Dsub_name varchar(10) not null,--库区名称 Varchar(10)
Dsub_type varchar(10) not null--仓库类别 Varchar(10)
)
go
--移动类型表:Transfer
if exists(select * from sysobjects where name='Transfer')
drop table Transfer
create table Transfer
(
Tran_id int primary key identity(1,1) not null, --移动类型id 主键 自增 Int
Tran_name varchar(20) not null --移动类型名称 Varchar(20)
)
go
--入库明细表:PutInfo
if exists(select * from sysobjects where name='PutInfo')
drop table PutInfo
create table PutInfo
(
Put_id Int primary key identity(1,1) not null, --入库明细id 主键 自增
Put_code Varchar(20) not null, --入库单代码 日期+随即数生成
Buybill_id Int not null, --采购单编号 外键
Put_time Datetime not null, --入库时间
Put_people varchar(20) not null, --入库人
Dsub_id Int not null, --库区 外键 级联删除
Tran_id Int not null --移动类型 外键
)
----约束
go
--库存表:Stock
if exists(select * from sysobjects where name='Stock')
drop table Stock
create table Stock
(
Stock_id Int primary key identity(1,1) not null, --库存编号 主键 自增
Dsub_id Int not null, --库区id 外键
Pro_id Int not null, --商品id 外键
Stock_number Int not null --商品数量
)
----约束
go
--出库明细表:OutInfo
if exists(select * from sysobjects where name='OutInfo')
drop table OutInfo
create table OutInfo
(
Out_id Int primary key identity(1,1) not null, --出库明细id 主键 自增
Out_code Varchar(20) not null, --出库单据号 唯一
Out_time Datetime not null, --出库时间
Out_llr Varchar(20) not null, --领料人
Out_flr Varchar(20) not null, --发料人
Out_tranId Int not null, --移动类型
Out_dsubId Int not null --库区
)
----约束
go
--补仓管理:RepairDepot
if exists(select * from sysobjects where name='RepairDepot')
drop table RepairDepot
create table RepairDepot
(
Repa_id Int primary key identity(1,1) not null, --补仓id 主键 自增
Pro_id Int not null, --商品id 外键
Repa_number Int not null, --补仓数量
Repa_dsubId Int not null, --库区表 外键
Repa_remark text null --备注 空,默认没有备注
)
----约束
go
--***********销售管理
--客户级别表(CustLevel)
if exists(select * from sysobjects where name='CustLevel')
drop table CustLevel
create table CustLevel
(
Cl_id Int primary key identity(1,1) not null, --编号 主,自增
Cl_name Varchar(10) not null, --级别名称
Cl_discount float not null --折扣
)
--约束
go
--客户信息表(customer)
if exists(select * from sysobjects where name='customer')
drop table customer
create table customer
(
C_id int primary key identity(1,1) not null, --编号 主,自动增长
C_number Varchar(10) not null, --客户代号
C_name Varchar(20) not null, --客户名称
C_linkman Varchar(20) not null, --联系人
C_phone Varchar(11) not null, --联系电话
C_address Text null, --公司地址 空,默认地址不详
Cl_id Int not null, --级别编号 外
C_remark text null, --备注信息 默认没有备注 空
)
--约束
go
--订单表(orders)
if exists(select * from sysobjects where name='orders')
drop table orders
create table orders
(
O_id int primary key identity(1,1) not null, --编号 主,自增
O_number Varchar(20) not null, --订单代码 日期+随即数生成
O_timestart datetime not null, --下单日期 下单时间必须在交货时间之前
O_timestop Datetime not null, --交货日期
O_money Money not null, --下单金额
C_id Int not null, --客户编号 外 级联删除
Emp_id int not null --员工编号 外
)
--约束
go
--订单明细表(OrderDetails)
if exists(select * from sysobjects where name='OrderDetails')
drop table OrderDetails
create table OrderDetails
(
Od_id Int primary key identity(1,1) not null, --编号 主,自增
O_id int not null, --订单编号 外
Pro_id int not null, --商品编号 外
Od_price Money not null, --单件金额
Od_accounts Int not null --单件数量
)
--约束
go
--销售单表(Sells)
if exists(select * from sysobjects where name='Sells')
drop table Sells
create table Sells
(
Sell_id int primary key identity(1,1) not null, --编号 主,自增
O_id int not null, --订单编号 外
Sell_timestart datetime not null, --销售日期 下单时间必须在交货时间之前
Sell_timestop Datetime not null, --交货日期
Sell_money Money not null, --销售金额
C_id Int not null, --客户编号 外
Emp_id int not null, --员工编号 外
Sell_remark text null --备注 空
)
--约束
go
--销售单明细表(SellDetails)
if exists(select * from sysobjects where name='SellDetails')
drop table SellDetails
create table SellDetails
(
Selld_id int primary key identity(1,1) not null, --编号 主,自增
O_id int not null, --订单编号
Pro_id int not null, --商品编号
Selld_price Money not null, --单件金额
Selld_accounts Int not null --单件数量
)
--约束
go
--***********财务管理
--财务科目表:FinaSub
if exists(select * from sysobjects where name='FinaSub')
drop table FinaSub
create table FinaSub
(
Fina_id Int primary key identity(1,1) not null, --科目编号 主,自增
Fina_name Varchar(50) not null, --科目名称
Fina_accounts Varchar(50) not null, --银行账号 随机数生成
Fina_people Varchar(50) not null, --联系人
Fina_telephone Varchar(11) not null, --联系电话
Fina_mode Varchar(10) not null, --是借或贷
Fina_play Varchar(10) not null, --借贷方式(现金、发票)
Fian_money money not null --金额
)
go
--发票信息表:Invoice
if exists(select * from sysobjects where name='Invoice')
drop table Invoice
create table Invoice
(
Invo_id Int primary key identity(1,1) not null, --发票编号 主,自增
Invo_code Varchar(50) not null, --发票单据号 日期+随机数生成,唯一
Invo_type Varchar(10) not null, --发票类型
Invo_money money not null, --金额
Invo_use Varchar(50) not null, --发票用途
Invo_datetime Datetime not null, --发票日期
Emp_id int not null --财务员编号 外,职员表
)
----约束
go
--固定资产表:FixedAssets
if exists(select * from sysobjects where name='FixedAssets')
drop table FixedAssets
create table FixedAssets
(
Fix_id Int primary key identity(1,1) not null, --资产编号 主,自增
Fix_name Varchar(100) not null, --资产名称
Fix_money Money not null, --可汇兑金额
Fix_datetime Datetime not null, --添加时间
Fix_remark Text null, --备注 空,默认没有备注
)
----约束
go
--财务员统计视图
--***********权限管理
--用户表:UserInfo
if exists(select * from sysobjects where name='UserInfo')
drop table UserInfo
create table UserInfo
(
u_id int primary key identity(1,1) not null, --用户编号,主,自增
u_name varchar(20) not null, --用户名,即登录名
u_pass varchar(10) not null, --登录密码
u_time datetime not null --登录时间
)
--insert into UserInfo values('admin','admin','2008-08-05')
--insert into UserInfo values('yqh','yqh','2008-08-05')
--insert into UserInfo values('gogo','gogo','2008-08-05')
--insert into UserInfo values('wangwang','wangwang','2008-08-05')
select * from UserInfo
go
--角色表:RolesInfo
if exists(select * from sysobjects where name='RolesInfo')
drop table RolesInfo
create table RolesInfo
(
r_id int primary key identity(1,1) not null, --角色编号,主,自增
r_name varchar(20) not null, --角色名称,即职位名称,唯一
r_desc text null --角色描述,空,默认没有描述
)
alter table RolesInfo add constraint UQ_r_name unique (r_name)
alter table RolesInfo add constraint DF_r_desc default ('没有描述') for r_desc
--insert into RolesInfo values('系统管理员','可以有任何操作')
--insert into RolesInfo values('总经理','最高管理者')
--insert into RolesInfo values('部门经理','管理者')
--insert into RolesInfo values('普通员工',default)
select * from RolesInfo
go
--用户和角色中间表(因为是、一对多的关系):UserRolesCenter
if exists(select * from sysobjects where name='UserRolesCenter')
drop table UserRolesCenter
create table UserRolesCenter
(
c_id int primary key identity(1,1) not null, --中间表编号,主,自增
u_id int not null, --外,用户编号,修改和删除规则都是层叠
r_id int not null --外,角色编号,修改和删除规则都是层叠
)
alter table UserRolesCenter add constraint FK_u_id foreign key (u_id) references UserInfo(u_id)
alter table UserRolesCenter add constraint FK_r_id foreign key (r_id) references RolesInfo(r_id)
--insert into UserRolesCenter values(1,1)
--insert into UserRolesCenter values(1,2)
--insert into UserRolesCenter values(2,2)
--insert into UserRolesCenter values(3,3)
--insert into UserRolesCenter values(4,4)
select * from UserRolesCenter
--delete from UserRolesCenter where c_id=5
--查询视图
select * from UserRolesView
--查询角色1中已有的用户,利用视图
select * from UserRolesView where r_id=1
--查询角色1中没有的用户,利用子查询,用户表中的所有用户减去角色中已有的用户
Select * from UserInfo where u_id not in (select u_id from UserRolesView where r_id=1)
go
--菜单表:MenuInfo
if exists(select * from sysobjects where name='MenuInfo')
drop table MenuInfo
create table MenuInfo
(
M_id Int primary key identity(1,1) not null,--菜单编号 主,自增
M_name Varchar(50) not null,--菜单名称
M_url Varchar(50) null,--菜单链接 空
M_parentId int not null,--父菜单编号
)
--约束
--insert into MenuInfo values('系统权限管理','',0)
--insert into MenuInfo values('人力资源管理','',0)
--insert into MenuInfo values('采购管理','',0)
--insert into MenuInfo values('仓库管理','',0)
--insert into MenuInfo values('销售管理','',0)
--insert into MenuInfo values('财务管理','',0)
select * from MenuInfo
go
--4.角色和菜单中间表即权限表:PowerInfo
if exists(select * from sysobjects where name='PowerInfo')
drop table PowerInfo
create table PowerInfo
(
P_id Int primary key identity(1,1) not null,--权限编号 主
R_id Int not null,--角色编号 外 ,修改和删除规则都是层叠
M_id int not null,--菜单编号 外 ,修改和删除规则都是层叠
)
--约束
alter table PowerInfo add constraint FK_pr_id foreign key (r_id) references RolesInfo(r_id)
alter table PowerInfo add constraint FK_m_id foreign key (m_id) references MenuInfo(m_id)
--insert into PowerInfo values(1,1)
--insert into PowerInfo values(1,2)
--insert into PowerInfo values(2,2)
--insert into PowerInfo values(3,3)
--insert into PowerInfo values(4,4)
select * from PowerInfo
--查询视图
select * from RolesMenuView
--查询角色1中已有的功能,利用视图
select * from RolesMenuView where r_id=1
--查询角色1中没有的功能,利用子查询,菜单表中的所有功能减去角色中已有的功能
Select * from MenuInfo where m_id not in (select m_id from RolesMenuView where r_id=1)
go