一个进销存数据库设计的例子
from:http://search.csdn.net/Expert/topic/763/763838.xml?temp=.9785883
CREATE TABLE user(
User_Id varchar(6),
User_Pwd varchar(8) NULL,
Again_Pwd varchar(8) NULL,
Bel_Group varchar(3) NULL,
Div_Type varchar(1) NULL,
User_Auth varchar(1) NULL,
Auth_Type varchar(1) NULL,
User_Status varchar(1) NULL,
Create_User varchar(6) NULL,
Create_Date varchar(7) NULL,
Create_Time varchar(6) NULL,
Appr_User varchar(6) NULL,
Appr_Date varchar(7) NULL,
Appr_Time varchar(6) NULL,
Pwd_Date varchar(7) NULL,
Err_Count float NULL,
Use_eJCIC varchar(1) NULL
)
CREATE TABLE Supplier /*供应商表*/
(
Supplier_ID int IDENTITY(1,1) NOT NULL, /* 供应商编号 ,主键 */
Name varchar(250) NOT NULL, /* 供应商名称 */
Address varchar(250) NOT NULL, /* 地址 */
Phone varchar(25) NULL, /* 电话 */
Fax varchar(25) NULL, /* 传真 */
PostalCode varchar(10) NULL, /* 邮编 */
ConstactPerson varchar(20) NULL /* 联系人 */
)
CREATE TABLE Customer /* 客户表*/
(
Customer_ID int IDENTITY(1,1) NOT NULL, /* 客户编号,主键*/
Name varchar(250) NOT NULL, /* 客户名称 */
Address varchar(250) NOT NULL, /* 地址 */
Phone varchar(25) NULL, /* 电话 */
Fax varchar(25) NULL, /* 传真 */
PostalCode varchar(10) NULL, /* 邮编 */
ConstactPerson varchar(20) NULL /* 联系人 */
)
CREATE TABLE Dept /* 部门表 */
(
Dept_ID int IDENTITY(1,1) NOT NULL, /* 部门编号,主键 */
Name varchar(30) NOT NULL, /* 名称 */
Remark varchar(250) NOT NULL/* 描述,备注 */
)
CREATE TABLE Dept_Supplier /* 部门--供应商表*/
(
Dept_ID int NOT NULL, /* 部门编号,主键 , 外键( 参照 DEPT 表 )*/
Supplier_ID int NOT NULL /* 供应商编号 ,主键,外键( 参照 SUPPLIER 表) */
)
CREATE TABLE Dept_Customer /* 部门--客户表*/
(
Dept_ID int NOT NULL, /* 部门编号,主键 , 外键( 参照 DEPT 表 )*/
Customer_ID int NOT NULL /* 客户编号,主键, 外键( 参照 SUPPLIER 表) */
)
CREATE TABLE StoreHouse /* 仓库表 */
(
StoreHouse_ID int IDENTITY(1,1) NOT NULL, /* 仓库编号,主键 */
Address varchar(250) NOT NULL, /* 地址 */
Phone varchar(25) NULL, /* 电话 */
Employee_ID INT NOT NULL, /* 仓库保管 ,外键 ( 参照 EMPLOYEE 表 ) */
CreateDate datetime NULL /* 仓库成立时间 */
)
CREATE TABLE ProductClass /* 商品总分类表 */
(
ProductClass_ID int IDENTITY(1,1) NOT NULL, /* 商品总分类编号, 主键 */
Name varchar(30) NOT NULL, /* 商品分类名称 */
Employee_ID INT NOT NULL, /* 建分类人 ,外键 ( 参照 EMPLOYEE 表 )*/
CreateDate datetime NULL, /* 建分类时间 */
Remark varchar(250) NULL, /* 描述,备注 */
)
CREATE TABLE ProductList /* 商品细分类表 */
(
ProductClass_ID INT NOT NULL, /* 商品总分类编号, 外键 ( 参照PRODUCTCLASS 表 ) */
ProductList_ID int IDENTITY(1,1) NOT NULL, /* 商品细分类编号,主键 */
Name varchar(30) NOT NULL, /* 商品名称 */
Employee_ID INT NOT NULL, /* 建分类人,外键 ( 参照 EMPLOYEE 表 )*/
CreateDate datetime NULL, /* 建分类时间 */
Remark varchar(250) NULL, /* 描述 ,备注 */
)
CREATE TABLE ProductSpec /* 商品规格表 */
(
ProductSpec_ID INT IDENTITY(1,1) NOT NULL, /* 商品规格编号,主键 */
Name varchar(30) NOT NULL, /* 商品规格名称 */
Employee_ID INT NOT NULL, /* 操作员 ,外键 ( 参照 EMPLOYEE 表 )*/
CreateDate datetime NULL, /* 创建时间 */
Remark varchar(250) NULL /* 描述,备注 */
)
CREATE TABLE ProductUnit /* 商品计量单位表 */
(
ProductUnit_ID INT IDENTITY(1,1) NOT NULL, /* 计量单位编号 ,主键 */
Name varchar(30) NOT NULL, /* 计量单位名称 */
Employee_ID INT NOT NULL, /* 操作员 ,外键 ( 参照 EMPLOYEE 表 )*/
CreateDate datetime NULL, /* 创建时间 */
Remark varchar(250) NULL /* 描述,备注 */
)
CREATE TABLE Product /* 商品目录表 */
(
ProductList_ID int NOT NULL, /* 商品细分类编号, 外键 ( 参照 PRODUCTLIST 表 ) */
Product_ID INT IDENTITY(1,1) NOT NULL, /* 商品名称编号, 主键 */
Name varchar(30) NOT NULL, /* 商品名称 */
ProductSpec_ID INT NOT NULL, /* 商品规格, 外键 ( 参照 PRODUCTSPEC 表 ) */
ProductUnit_ID INT NOT NULL, /* 计量单位, 外键 ( 参照 PRODUCTUNIT 表 ) */
Price MONEY NULL, /* 参考价格 */
Employee_ID INT NOT NULL, /* 操作员, 外键 ( 参照 EMPLOYEE 表 )*/
CreateDate datetime NULL, /* 创建时间 */
Remark varchar(250) NULL /* 描述,备注 */
)
CREATE TABLE Product_Supplier /* 商品--供应商表 */
(
Product_ID INT NOT NULL, /* 商品名称编号,主键 , 外键( 参照 PRODUCT 表 )*/
Supplier_ID INT NOT NULL /* 供应商编号 , 主键, 外键( 参照 SUPPLIER 表) */
)
CREATE TABLE Employee /* 员工表 */
(
Employee_ID INT IDENTITY(1,1) NOT NULL, /* 员工编号 */
Dept_ID INT NOT NULL, /* 所属部门编号 */
Name varchar(30) NOT NULL, /* 姓名 */
Duty varchar(20) NOT NULL, /* 职务 */
Gender varchar(6) NOT NULL, /* 性别 */
BirthDate datetime NOT NULL, /* 出生日期 */
HireDate datetime NULL, /* 合同签订 日期 */
MatureDate datetime NULL, /* 合同到期日 */
IdentityCard varchar(20) NULL, /* 身份证号 */
Address varchar(250) NULL, /* 住址 */
Phone varchar(25) NULL, /* 电话 */
Email varchar(30) NULL /* E_MAIL */
)
/*-///////////////////////////////////////////////////////////////////////////////////////-*/
CREATE TABLE BuyOrder /* 进货合同 */
(
BuyOrder_ID INT IDENTITY(1,1) NOT NULL, /* 进货合同编号 , 主键 */
WriteDate datetime NOT NULL, /* 合同签订日期 */
InsureDate datetime NOT NULL, /* 合同生效日期 */
EndDate datetime NOT NULL, /* 合同到期日期 */
Dept_ID INT NOT NULL, /* 签订部门, 外键 ( 参照 DEPT 表 ) */
Supplier_ID INT NOT NULL, /* 供应商, 外键 ( 参照 SUPPLIER 表 ) */
Employee_ID INT NOT NULL /* 合同主要负责人, 外键 ( 参照 EMPLOYEE 表) */
)
CREATE TABLE BuyOrder_Detail /* 进货合同明细表 */
(
BuyOrder_ID INT NOT NULL, /* 进货合同编号,主键, 外键 ( 参照 BUYORDER 表 ) */
Product_ID INT NOT NULL, /* 所进商品编号,主键, 外键 (参照 PRODUCT 表 ) */
Quantity INT NOT NULL, /* 商品数量 */
Price money NOT NULL /* 商品进价 */
)
CREATE TABLE EnterStock /* 入库单表 */
(
EnterStock_ID INT IDENTITY(1,1) NOT NULL, /* 入库单编号 , 主键 */
EnterDate datetime NOT NULL, /* 入库时间 */
Dept_ID INT NOT NULL, /* 入库部门 ,外键 ( 参照 DEPT 表 )*/
StoreHouse_ID INT NOT NULL, /* 所入仓库 ,外键 ( 参照 STOREHOUSE 表)*/
Employee_ID INT NOT NULL /* 入库人 , 外键 ( 参照 EMPLOYEE 表)*/
/*需添加 仓库保管员如何来验证入库单 ?? */
)
CREATE TABLE EnterStock_Detail /* 入库单明细 */
(
EnterStock_ID INT NOT NULL, /* 入库单编号 , 主键, 外键 (参照 ENTERSTOCK 表 )*/
Product_ID INT NOT NULL, /* 此种商品编号,主键, 外键 (参照 PRODUCT 表 ) */
Quantity int NOT NULL, /* 此种商品数量 */
Price money NULL, /* 此种商品参考价格 */
HaveInvoice bit not null, /* 此种商品有没有开发票 ( 缺省为 0 , 有没有开票 )*/
InvoiceNum varchar(30) NULL /* 发票号 */
)
CREATE TABLE BackStock /* 退库单表 */
(
BackStock_ID INT IDENTITY(1,1) NOT NULL, /* 退库单编号 , 主键 */
BackDate datetime NOT NULL, /* 退库时间 */
Dept_ID INT NOT NULL, /* 退库部门 , 外键 ( 参照 DEPT 表 )*/
StoreHouse_ID INT NOT NULL, /* 所退入仓库 ,外键 ( 参照 STOREHOUSE 表)*/
Employee_ID INT NOT NULL, /* 退库人 , 外键 ( 参照 EMPLOYEE 表)*/
Remark varchar(250) NULL /* 退库原因 */
)
CREATE TABLE BackStock_Detail /* 退库单明细表 */
(
BackStock_ID INT NOT NULL, /* 退库单编号 , 主键, 外键 (参照 BACKSTOCK 表 )*/
Product_ID INT NOT NULL, /* 所退商品编号,主键, 外键 (参照 PRODUCT 表 ) */
Quantity int NOT NULL, /* 退入数量 */
Price money NULL /* 参考价格 */
)
CREATE TABLE LeaveStock /* 出库单表 */
(
LeaveStock_ID INT IDENTITY(1,1) NOT NULL, /* 出库单编号 , 主键, 外键 (参照 LEAVESTOCK 表 )*/
LeaveDate datetime NOT NULL, /* 出库时间 */
Dept_ID INT NOT NULL, /* 出库部门 , 外键 ( 参照 DEPT 表 )*/
StoreHouse_ID INT NOT NULL, /* 所出仓库 ,外键 ( 参照 STOREHOUSE 表)*/
ToStoreHouse_ID INT NOT NULL, /* 所入仓库 ,外键 ( 参照 STOREHOUSE 表)*/
Employee_ID INT NOT NULL /* 出库人 , 外键 ( 参照 EMPLOYEE 表)*/
/* 仓库保管员如何来验证出库单 ?? */
)
CREATE TABLE LeaveStock_Detail /* 出库单明细表 */
(
LeaveStock_ID INT NOT NULL, /* 出库单编号 , 主键, 外键 (参照 BACKSTOCK 表 )*/
Product_ID INT NOT NULL, /* 所出商品编号,主键, 外键 (参照 PRODUCT 表 ) */
Quantity int NOT NULL, /* 出库数量 */
Price money NULL /* 出库价格 */
)
CREATE TABLE BackSale /* 退货单表 */
(
BackSale_ID INT IDENTITY(1,1) NOT NULL, /* 退货单编号 , 主键 */
BackDate datetime NOT NULL, /* 退货日期 */
Dept_ID INT NOT NULL, /* 退货部门 , 外键 ( 参照 DEPT 表 )*/
StoreHouse_ID INT NOT NULL, /* 退入仓库 , 外键 ( 参照 STOREHOUSE 表)*/
Employee_ID INT NOT NULL, /* 退货人 , 外键 ( 参照 EMPLOYEE 表)*/
Remark varchar(250) NULL /* 退货原因 */
)
CREATE TABLE BackSale_Detail /* 退货单明细表 */
(
BackSale_ID INT NOT NULL, /* 退货单编号 , 主键, 外键 (参照 BACKSTOCK 表 )*/
Product_ID INT NOT NULL, /* 所退商品编号,主键, 外键 (参照 PRODUCT 表 ) */
Quantity int NOT NULL, /* 退货数量 */
Price money NULL /* 价格 */
)
CREATE TABLE SaleOrder /* 销售合同 */
(
SaleOrder_ID INT IDENTITY(1,1) NOT NULL, /* 合同编号 , 主键 */
WriteDate datetime NOT NULL, /* 合同签订日期 */
InsureDate datetime NOT NULL, /* 合同生效日期 */
EndDate datetime NOT NULL, /* 合同到期日期 */
Dept_ID INT NOT NULL, /* 签订部门, 外键 ( 参照 DEPT 表 ) */
Customer_ID INT NOT NULL, /* 客户编号, 外键 ( 参照 CUSTOMER 表 ) */
Employee_ID INT NOT NULL /* 合同主要负责人, 外键 ( 参照 EMPLOYEE 表) */
)
CREATE TABLE SaleOrder_Detail /* 销售合同明细表 */
(
SaleOrder_ID INT NOT NULL, /* 销售合同编号,主键, 外键 ( 参照 BUYORDER 表 ) */
Product_ID INT NOT NULL, /* 销售商品编号,主键, 外键 (参照 PRODUCT 表 ) */
Quantity int not null, /* 商品数量 */
Price money null /* 商品进价 */
)
CREATE TABLE Buy /* 进货表 ( 验货表 ) */
(
Buy_ID INT IDENTITY(1,1) NOT NULL, /* 进货编号 , 主键 */
ComeDate datetime NOT NULL, /* 进货日期 */
Dept_ID INT NOT NULL, /* 进货部门, 外键 ( 参照 DEPT 表 ) */
Employee_ID INT NOT NULL /* 验货人, 外键 ( 参照 EMPLOYEE 表)*/
)
CREATE TABLE Buy_Detail /* 进货表明细 ( 验货表 ) */
(
Buy_ID INT NOT NULL, /* 进货编号,主键, 外键 ( 参照 BUY 表 ) */
Product_ID INT NOT NULL, /* 商品编号,主键, 外键 ( 参照 PRODUCT 表 ) */
BuyOrder_ID INT NULL, /* 采购合同, 外键 ( 参照 BUYORDER 表 ) */
Quantity int not null, /* 数量 */
Price money null /* 价格 */
/* BUYORDER_ID 为 NULL 时, 为现金进货 */
)
CREATE TABLE Sale /* 销售 表 */
(
Sale_ID INT IDENTITY(1,1) NOT NULL, /* 销售 编号 */
SaleDate datetime not null, /* 销售 日期 */
Dept_ID INT NOT NULL, /* 销售部门, 外键 ( 参照 DEPT 表 ) */
Employee_ID INT NOT NULL /* 售货人, 外键 ( 参照 EMPLOYEE 表)*/
)
CREATE TABLE Sale_Detail /* 销售明细 ( 验货表 ) */
(
Sale_ID INT NOT NULL, /* 销售编号,主键, 外键 ( 参照 SALE 表 ) */
Product_ID INT NOT NULL, /* 商品编号,主键, 外键 ( 参照 PRODUCT 表 ) */
SaleOrder_ID INT NULL, /* 销售合同, 外键 ( 参照 SALEORDER 表 ) */
Quantity int not null, /* 数量 */
Price money not null, /* 价格 */
Discount int null /* 折扣 */
/* SALEORDER_ID 为 NULL 时, 为现金销售 */
)
CREATE TABLE StockPile /* 库存表 */
(
StockPile_ID INT IDENTITY(1,1) NOT NULL, /* 库存编号 , 主键 */
Dept_ID INT NOT NULL, /* 商品所属部门, 外键 ( 参照 DEPT 表 ) */
StoreHouse_ID INT NOT NULL, /* 所在仓库, 外键 ( 参照 SOTREHOUSE 表 ) */
Product_ID INT NOT NULL, /* 商品编号, 外键 ( 参照 PRODUCT 表 ) */
FirstEnterDate datetime not null, /* 此种商品第一次入库时间 */
LastLeaveDate datetime null, /* 此种商品最后一次出库时间 */
Quantity int not null, /* 所存数量 */
Price money not null /* 加权价 */
/* LASTLEAVEDATE 为NULL 时,此种商品从来没有 卖过 */
)