use master
go
drop database Medicine
create database Medicine
go
use Medicine
go
--第一个模块(基本信息管理)
create table Provider--供应商
(
ProviderID varchar(10) primary key, --供应商编号
ProviderName nvarchar(50) unique, --供应商名称
Linkman varchar(10), --联系人
LinkPhone varchar(20), --联系电话
Fax varchar(20), --传真
Email varchar(60), --电子邮件
URL varchar(60), --网址
Address nvarchar(60), --联系地址
PostCode varchar(6), --邮政编码
Bank nvarchar(40), --开户银行
BankAccount varchar(30) --银行帐号
)
go
--药品类别
create table MedicineType
(
TypeCode varchar(10) primary key, --类别编码
TypeName varchar(20) --类别名称
)
insert into MedicineType values('MT001','')
insert into MedicineType values('MT002','')
insert into MedicineType values('MT003','')
go
--药品字典
create table MedicineDictionary
(
MDCode varchar(10) primary key, --药品编码
MDName varchar(60), --药品名称 一般20字左右
SpellCode varchar(10), --药品拼音码
TypeCode varchar(10) constraint FK_MD foreign key(TypeCode) references MedicineType(TypeCode) on update cascade, --药品类别编码
SpecContent varchar(6), --规格含量
MDUnit varchar(6), --药品单位
MDDose varchar(4), --药品剂型
Ingredient nvarchar(600), --药品成份
MDFunction nvarchar(600), --功能与主治
Usage nvarchar(400), --用法与用量
Memo nvarchar(400), --备注
)
go
--药品库存表
create table Inventory
(
MDCode varchar(10) constraint FK_Inventory foreign key(MDCode) references MedicineDictionary(MDCode) on update cascade,
BatchID varchar(10) unique,
ValidDate datetime,
ProductDate datetime,
InPrice decimal(6,2),
RetailPrice decimal(6,2),
Number int,
constraint pk_Inventory primary key(MDCode ,BatchID)
)
go
--员工表
create table Worker
(
WorkerID varchar(10) primary key, --员工编码 要求唯一
PurchaserName varchar(10), --员工姓名
DepartmentName varchar(30), --部门名称
WorkKind varchar(10), --工作性质可以是采购员、库管员等
Sex varchar(2) check (Sex in('男','女')), --性别
Birthday datetime, --出生日期
HomePhone varchar(20), --宅电
TEL varchar(20), --手机
Pwd varchar(20), --密码
GrantDeny nvarchar(4) --权限信息维护、采购、库存、系统维护
)
insert into Worker values('W001','jin','采购部','1','男','1986-12-12','0431-1231-1231','133-12311234','jin','信息')
insert into Worker values('W002','jzx','财务部','2','男','1986-12-12','0431-1231-1231','133-12311234','jzx','采购')
select * from Worker
go
create proc user_validate
(
@PurchaserName varchar(10),
@Pwd varchar(20)
)
as
declare @count int
select @count=count(*) from Worker where PurchaserName=@PurchaserName and Pwd=@Pwd
return @count
go
create proc Insert_Worker
(
@WorkerID varchar(10), --员工编码 要求唯一
@PurchaserName varchar(10), --员工姓名
@DepartmentName varchar(30), --部门名称
@WorkKind varchar(10), --工作性质可以是采购员、库管员等
@Sex varchar(2), --性别
@Birthday datetime, --出生日期
@HomePhone varchar(20), --宅电
@TEL varchar(20), --手机
@Pwd varchar(20), --密码
@GrantDeny nvarchar(4) --权限信息维护、采购、库存、系统维护
)
as
insert into Worker values(@WorkerID,@PurchaserName,@DepartmentName,@WorkKind,@Sex,@Birthday,@HomePhone,@TEL,@Pwd,@GrantDeny)
go
create proc Update_Worker
(
@WorkerID varchar(10), --员工编码 要求唯一
@PurchaserName varchar(10), --员工姓名
@DepartmentName varchar(30), --部门名称
@WorkKind varchar(10), --工作性质可以是采购员、库管员等
@Sex varchar(2), --性别
@Birthday datetime, --出生日期
@HomePhone varchar(20), --宅电
@TEL varchar(20), --手机
@Pwd varchar(20), --密码
@GrantDeny nvarchar(4) --权限信息维护、采购、库存、系统维护
)
as
update Worker set PurchaserName=@PurchaserName,DepartmentName=@DepartmentName,WorkKind=@WorkKind,Sex=@Sex,Birthday=@Birthday,HomePhone=@HomePhone,TEL=@TEL,Pwd=@Pwd,GrantDeny=@GrantDeny where WorkerID= @WorkerID
go
create proc Delete_Worker
(
@WorkerID varchar(10)
)
as
delete from Worker where WorkerID= @WorkerID
go
--第三个模块(库存管理)
--入库单主表
create table InWareHouseMaster
(
InWareHouseID varchar(10) primary key, --入库单编码 YYYY-MM-DD-NNNNN
MDCode varchar(10) constraint FK_InWareHouseMaster foreign key(MDCode) references MedicineDictionary(MDCode) on update cascade,
BatchID varchar(10),
InPrice decimal(6,2),
InDetailsNumber int, --本单明细数量
InMoney decimal(10,2), --本单入库金额
InType varchar(10), --入库类型采购入库、盘盈入库
InDate datetime, --生成入库单时间
InWorkerID varchar(10), --操作员编码 即库管员
DealWorkerID varchar(10), --经手人编码
AuditWorkerID varchar(10), --审核人编码
Memo varchar(100) --备注
)
go
--第二个模块(药品采购管理)
--采购单主表
create table PurchaseMaster
(
PurchaseID varchar(10) primary key, --采购单编码
MDCode varchar(10) constraint FK_PurchaseMaster foreign key(MDCode) references MedicineDictionary(MDCode) on update cascade,
ProviderID varchar(10) constraint FK_Provider foreign key(ProviderID) references Provider(ProviderID) on update cascade,
InWareHouseID varchar(10) constraint FK_InPurchase foreign key(InWareHouseID) references InWareHouseMaster(InWareHouseID),--入库单编码 可以跟踪哪一个入库单完成本采购任务。
Price decimal(6,2), --供应商编码
DetailsNumber int, --本单明细数量
PurchaseMoney decimal(10,2), --本单采购金额
WorkerOutID varchar(10), --采购员编码
GenerateDate datetime, --生成采购单时间
WorkerIntID varchar(10), --操作员编码
OverDate
StartDate --采购单完成时间
Memo nvarchar(100) --备注
)
go
--出库单主表
create table OutWareHouseMaster
(
OutWareHouseID varchar(10) not null primary key, --出库单编码 YYYY-MM-DD-NNNNN
MDCode varchar(10) constraint FK_OutWareHouseMaster foreign key(MDCode) references MedicineDictionary(MDCode) on update cascade,
BatchID varchar(10),
OutPrice decimal(6,2),
OutDetailsNumber int, --本单明细数量
OutMoney decimal(10,2), --本单出库金额
OutType varchar(10), --出库类型
OutDate datetime, --生成出库单时间
OutWorkerID varchar(10) constraint FK_OutWorkerID foreign key(OutWorkerID) references Worker(WorkerID), --操作员编码即付药员
DealWorkerID varchar(10) constraint FK_DealWorkerID foreign key(DealWorkerID) references Worker(WorkerID), --经手人编码 字符 10
AuditWorkerID varchar(10) constraint FK_AuditWorkerID foreign key(AuditWorkerID) references Worker(WorkerID), --审核人编码 字符 10
Memo varchar(100) --备注
)
go
--日志表
create table UserLog
(
LogID varchar(10) primary key,
WorkerID varchar(10) constraint FK_UserLog foreign key(WorkerID) references Worker(WorkerID),
Content varchar(50),
LogDate datetime
)
go