电子商务网站-数据库设计_电子商务 数据库设计

-- ============================================= 
-- ylb:电子商务模板 
-- author:YUANBO 
-- development time:2011-11-9 
-- thank you:LiuGaiZhen 
-- ============================================= 
USE master 
GO 
  
-- Drop the database if it already exists 
IF  EXISTS ( 
    SELECT name 
        FROM sys.databases  
        WHERE name = N'EShop'
) 
DROP DATABASE EShop 
GO 
  
CREATE DATABASE EShop 
GO 
use EShop 
  
go 
-- ============================================= 
-- 1,供应商 
-- ============================================= 
create table Suppliers 
( 
SupplierID int identity(1,1) primary key,   --供应商ID [PK] 
CompanyName nvarchar(40) not null,          --公司名称 
ContactName nvarchar(30),           --联系人姓名 
ContactTitle nvarchar(30),          --联系人头衔 
[Address] nvarchar(60),             --地址 
  
City nvarchar(15),                  --城市 
Region nvarchar(15),                --地区 
PostalCode nvarchar(15),            --邮政编码 
Country nvarchar(24),               --国家 
Phone nvarchar(24),                 --电话 
  
Fax nvarchar(24),           --传真 
HomePage ntext              --主页 
) 
  
go 
-- ============================================= 
-- 2,类别 
-- ============================================= 
create table Categories 
( 
CategoryID int identity(1,1) primary key,   --类别ID  [PK] 
CategoryName nvarchar(15) not null, --类别名称 
[Description] ntext,                --说明 
Picture p_w_picpath                       --图片 
) 
  
go 
-- ============================================= 
--3,产品  
-- ============================================= 
create table Products 
( 
ProductID int identity primary key, --产品ID『PK』 
ProductName nvarchar(40) not null,  --产品名称 
SupplierID int foreign key references Suppliers(SupplierID),                        --供应商ID 
CategoryID int foreign key references Categories(CategoryID),                   --类别ID 
QuantityPerUnit nvarchar(20),   --单位数量 
  
UnitPrice money,            --单价 
UnitsInStock smallint default(0) check(UnitsInStock>=0),     --库存量 
UnitsOnOrder smallint default(0) check(UnitsOnOrder>=0),     --订购量 
ReorderLevel smallint default(0) check(ReorderLevel>=0),     --再订购量 
Discontinued bit            --中止 
) 
  
go 
-- ============================================= 
-- 4,订单明细 
-- ============================================= 
create table OrderDetails 
( 
OrderID int identity(1,1),      --订单ID 
ProductID int,      --产品ID   
UnitPrice money not null,   --单价 
Quantity smallint not null, --数量 
Discount real not null,     --折扣 
  
primary key(OrderID,ProductID)  --联合主键 
) 
  
go 
-- ============================================= 
-- 5,雇员 
-- P:1,ReportsTo; 2,baseID 
-- ============================================= 
create table Employees 
( 
EmployeeID int identity(1,1) primary key,   --雇员ID【PK】 
lastName nvarchar(20) not null,             --姓氏 
FirstName nvarchar(10) not null,            --名字 
Title nvarchar(30),     --头衔 
TitleOfCourtesy nvarchar(25),       --尊称 
  
BirthDate datetime,     --出生日期 
HireDate datetime,      --雇佣日期 
[Address] nvarchar(50), --地址 
City nvarchar(15),      --城市 
Region nvarchar(15),    --地区 
  
PostalCode nvarchar(10),    --邮政编码 
Country nvarchar(15),       --国家 
HomePhone nvarchar(24),     --家庭电话 
Extension nvarchar(4),      --分机 
Photo p_w_picpath,                --照片 
  
Notes ntext,        --备注 
--ReportsTo int FK 
PhotoPath nvarchar(255) --图片地址 
--baseID    --上级编号 
) 
  
go 
-- ============================================= 
-- 6,客户 
-- ============================================= 
create table Customers 
( 
CustomerID nchar(5) primary key,    --客户ID【PK】 
CompanyName nvarchar(40) not null,  --公司名称 
ContactName nvarchar(30),           --联系人姓名 
ContactTitle nvarchar(30),          --联系人头衔 
[Address] nvarchar(60),             --地址 
  
City nvarchar(15),      --城市 
Region nvarchar(15),    --地区 
PostalCode nvarchar(15),--邮政编号   
Country nvarchar(24),   --国家 
Phone nvarchar(24),     --电话 
  
Fax nvarchar(24)        --传真 
) 
  
go 
-- ============================================= 
-- 7,客户演示图形 
-- ============================================= 
create table CustomerDemoGraphics 
( 
CustomerTypeID nchar(10) primary key,   --客户演示图形ID 【PK】 
CustomerDesc ntext                      --客户描述 
) 
  
go 
-- ============================================= 
-- 7,客户演示图形 
-- ============================================= 
create table CustomerCustomerDemo 
( 
CustomerID nchar(5) foreign key references Customers(CustomerID),   --客户ID【PK,FK】 
CustomerTypeID nchar(10) foreign key references CustomerDemoGraphics(CustomerTypeID), --客户演示图形ID【PK,FK】 
primary key(CustomerID,CustomerTypeID) 
) 
  
go 
-- ============================================= 
-- 7,订单 
-- ============================================= 
create table Orders 
( 
OrderID int identity primary key,   --订单ID【PK】 
CustomerID nchar(5) foreign key references Customers(CustomerID),   --客户ID【FP】 
EmployeeID int foreign key references Employees(EmployeeID),    --雇员ID【FP】 
OrderDate datetime,     --订购日期 
RequiredDate datetime,  --到货日期 
  
ShippedDate datetime,   --发货日期 
--ShipVia int FK        --运货商 
Fright money,           --运货费 
ShipName nvarchar(15),      --货主名称 
ShipAddress nvarchar(60),   --货主地址 
  
ShipCity nvarchar(15),      --货主城市 
ShipRegion nvarchar(15),    --货主地区 
ShipPostalCode nvarchar(10),--货主邮政编码     
ShipContry nvarchar(15)     --货主国家 
) 
  
-- ============================================= 
-- 8,运货商 
-- ============================================= 
create table Shippers 
( 
ShipperID int identity primary key,     --运货商ID【PK】 
CompanyName nvarchar(40) not null,      --公司名称 
Phone nvarchar(24)                      --电话 
) 
  
print 'ylb, tech 创建电子商务数据库完成'