[轉]一个进销存数据库设计的例子

代码
CREATE TABLE user(    /*用戶表*/  
  
User_Id varchar(6),   
  User_Pwd 
varchar(8NULL,   
  Again_Pwd 
varchar(8NULL,   
  Bel_Group 
varchar(3NULL,   
  Div_Type 
varchar(1NULL,   
  User_Auth 
varchar(1NULL,   
  Auth_Type 
varchar(1NULL,   
  User_Status 
varchar(1NULL,   
  Create_User 
varchar(6NULL,   
  Create_Date 
varchar(7NULL,   
  Create_Time 
varchar(6NULL,   
  Appr_User 
varchar(6NULL,   
  Appr_Date 
varchar(7NULL,   
  Appr_Time 
varchar(6NULL,   
  Pwd_Date 
varchar(7NULL,   
  Err_Count 
float NULL,   
  Use_eJCIC 
varchar(1NULL   
)   
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 时,此种商品从来没有 卖过 */    
)  

 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liaojiafan/archive/2009/11/26/4879178.aspx

posted @ 2010-01-15 13:54  Athrun  阅读(994)  评论(0编辑  收藏  举报