ylbtech-dbs-m-ele(饿了么)

ylbtech-dbs:ylbtech-m-ele(饿了么)

-- =============================================
-- DatabaseName:Ele

-- desc:饿了么(外卖网)
-- pubdate:10:41 2014-06-23
-- author:ylbtech
-- http://m.ele.me
-- =============================================

1.A,数据库关系图(Database Diagram) 返回顶部
1.B,数据库设计脚本(Database Design Script)返回顶部

1.B.1,

1.B.1.1, sql-basic.sql

-- =============================================
-- DatabaseName:Ele
-- pubdate:10:41 2014-06-23
-- author:ylbtech
-- http://m.ele.me
-- =============================================
USE master
GO

-- Drop the database if it already exists
IF  EXISTS (
    SELECT name 
        FROM sysdatabases 
        WHERE name = N'ele'
)
DROP DATABASE ele
GO

CREATE DATABASE ele
GO
use ele
go

go
-- =============================================
-- ylb:1,用户表
-- =============================================
create table Account
(
account_id int primary key identity(10000,1),    --编号【PK】
username varchar(40) unique not null,            --用户名【UQ】
[password] varchar(40) not null,                --密码
email varchar(60) not null,        --电子邮箱
pubdate datetime default(getdate()),    --时间
flag bit default(0)    --标识帐号是否激活 0:未激活;1:以激活
)
go
-- =============================================
-- ylb:1,我的地址
-- =============================================
create table [Address]
(
address_id int primary key identity(10000,1),    --编号【PK】
[address] varchar(40) not null,            --详细地址
phone varchar(40) not null,                --联系电话
phone_bk varchar(40) not null,        --备选电话
flag bit default(0),    --0:;1:默认送餐地址
account_id int foreign key references Account(account_id),   --账户ID【FK】 
)
go
--drop table FeedBack
GO
-- =============================================
-- ylb: 6, 反馈留言
-- =============================================
create table Feedback
(
feedback_id int primary key identity(1,1),    --编号【PK,ID】
content varchar(200),                    --内容
pubdate datetime default(getdate()),    --时间
[type] int,                            --类型
[status] int,                            --状态
reply_content varchar(200),                --回复内容
reply_pubdate datetime,            --回复日期
account_type int,        --用户类型
account_id int foreign key references Account(account_id)   --账户ID【FK】 
)

go 
-- ============================================= 
-- 2,标签 【公共】
-- ============================================= 
create table Tag 
( 
tag_id int identity(1,1) primary key,   --类别ID  [PK] 
tag_name varchar(100), --标签名称 
tag_img varchar(100),    --标签图片
[description] varchar(400),    --描述
flag bit default(0)    --是否禁用
) 

--drop table Place
--drop table City

go
-- =============================================
-- ylb:1,城市【公共】
-- =============================================
create table City
(
city_id varchar(20) primary key,    --编号【PK】
city_name varchar(40) unique not null,            --城市名【UQ】
flag bit default(0)    --0:;1:是否禁用
)

go
-- =============================================
-- ylb:1,城市【公共】
-- =============================================
create table Place
(
place_id int unique identity(10000,1),    --编号【UQ】
place_name varchar(40) unique not null,            --地址名称
address varchar(40) not null,            --地址
flag bit default(0),    --0:;1:是否禁用
city_id varchar(20) foreign key references City(city_id),   --账户ID【FK】 
)
go

go
-- =============================================
-- ylb:1,用户表_商户
-- =============================================
create table AccountShop
(
account_shop_id int primary key identity(10000,1),    --编号【PK】
username varchar(40) unique not null,            --用户名【UQ】
[password] varchar(40) not null,                --密码
email varchar(60) not null,        --电子邮箱
pubdate datetime default(getdate()),    --时间
flag bit default(0)    --标识帐号是否激活 0:未激活;1:以激活
)
go
-- =============================================
-- ylb:1,店铺
-- =============================================
create table Shop
(
shop_id int primary key identity(10000,1),    --编号【UQ】
shop_name varchar(500) unique not null,            --商铺名称
logo_img varchar(500) not null,            --商标图片

opening_time varchar(500) not null,            --营业时间
begin_price varchar(500) not null,            --起送价

[address] varchar(500) not null,            --地址
intro varchar(500) not null,            --简介
notice varchar(500) not null,            --公告
location varchar(40) not null,        --商铺所在位置
[status] varchar(40),    --状态 营业中|休息中

--distance varchar(40) not null,            --距离
account_shop_id int foreign key references AccountShop(account_shop_id)   --商户账户ID【FK】 
)

go 
-- ============================================= 
-- 2,类别 
-- ============================================= 
create table Category 
( 
category_id int identity(10000,1) primary key,   --类别ID  [PK] 
category_name varchar(40) not null, --类别名称 
[description] varchar(400),                --说明 
picture varchar(40),                       --图片
flag bit default(0),    --是否禁用
shop_id int foreign key references Shop(shop_id)   --商铺ID【FK】 
) 
go
--drop table Product  
go 
-- ============================================= 
--3,产品  
-- ============================================= 
create table Product
( 
product_id int identity primary key, --产品ID『PK』 
product_name varchar(400) not null,  --产品名称 
product_img varchar(400),    --图片
quantity_per_unit varchar(40),   --规格   
unit_price decimal(8,2),            --单价 
units_in_stock int default(0) check(units_in_stock>=0),     --库存量 
units_on_order int default(0) check(units_on_order>=0),     --订购量
--reorder_level int default(0) check(reorder_level>=0),     --再订购量 
flag bit default(0),    --是否禁用

category_id int foreign key references Category(category_id),                   --类别ID 
shop_id int foreign key references Shop(shop_id),    --帐户编号【FK】关联与帐户设置
flag_hotfood bit default(0)    --是否推荐
) 

--drop table Comment

go 
-- ============================================= 
-- 4,菜品评价 
-- ============================================= 
create table Comment
(
comment_id int identity primary key,    --编号【PK,ID】
content varchar(400),    --内容
pubdate datetime default(getdate()),    --评价日期

account_id int foreign key references Account(account_id),   --账户ID【FK】 
shop_id int foreign key references Shop(shop_id),   --帐户编号【FK】关联与帐户设置
product_id int foreign key references Product(product_id),   --菜品ID【FK】 
)

go 
-- ============================================= 
-- 7,订单 
-- ============================================= 
create table [Order]
( 
order_id int identity primary key,   --订单ID【PK】 
account_id int foreign key references Account(account_id),   --账户ID【FK】 
shop_id int foreign key references Shop(shop_id),    --商铺ID【FK】 
order_date datetime,     --订购日期 
required_date datetime,  --到货日期 

total decimal(8,2),        --合计金额
shipped_date datetime,   --发货日期 
ShipVia int,        --运货商【FK】 
fright decimal(8,2),           --运货费 
ship_name varchar(15),      --货主名称 
ship_address varchar(60),   --货主地址 
  
ship_city varchar(15),      --货主城市 
ship_region varchar(15),    --货主地区      
ship_contry varchar(15),     --货主国家 
ship_postal_code varchar(10),--货主邮政编码
[status] int,    --状态
flag bit default(0),    --是否禁用

deliver_time varchar(40),    --送餐时间
remark varchar(400),        --备注
[type] int    --外卖|预订|就餐
) 
go
--drop table [Order]
--drop table OrderDetails
go 
-- ============================================= 
-- 4,订单明细 
-- ============================================= 
create table OrderDetails
( 
order_id int,      --订单ID【UPK】 
product_id int,      --产品ID【UPK】    
unit_price decimal(8,2) not null,   --单价 
quantity int not null, --数量 
--discount decimal(8,2) not null,     --折扣 
[name] varchar(400),    --名称
status int,    --状态
account_id int foreign key references Account(account_id),   --账户ID【FK】 
shop_id int foreign key references Shop(shop_id),    --商铺ID【FK】 
primary key(order_id,product_id)  --联合主键 
) 
--drop table Invoice
go
-- =============================================
-- ylb:1,发票
-- =============================================
create table Invoice
(
invoice_id int primary key identity(100,1),    --编号【PK】
invoice varchar(40) not null,            --发票抬头
[money] decimal(8,2),                --金额
pubdate datetime default(getdate()),    --开票时间
[status] varchar(40),        --状态 正常|作废
account_id int foreign key references Account(account_id),   --账户ID【FK】 
shop_id int foreign key references Shop(shop_id),   --商铺ID【FK】
order_id int foreign key references [Order](order_id)   --订单ID【FK】 
)

go
-- =============================================
-- ylb:1,购物车
-- =============================================
create table Cart
(
[id] int,    --菜品编号【FK】
[name] varchar(400),    --名称
quantity int,        --数量
unit_price decimal(8,2),    --单价
[type] int,    --状态 0=登录|1=匿名
shop_id int,    --商铺ID【FK】
account_id int,     --账户ID【FK】
auth_cookie varchar(400),    --匿名Cookie 记录
pubdate datetime    --添加时间
)
View Code

1.B.1.2, insertTestData.sql

use ele
go
select * from AccountShop
insert into AccountShop(username,[password],email,pubdate,flag)
values('rainShop','lifeel_','1102307900@qq.com','2014-06-12',1)
go
select * from Shop
insert into Shop(shop_name,logo_img,opening_time,begin_price,address
,intro,notice,location,status,account_shop_id)
values('RainShop','img','10:00-17:00','20元','长远天地'
,'Intro  Intro。。。','Notice Notice。。。。','Location','营业中',10000)
go
select * from Category
insert into Category(category_name,[description],picture,flag,shop_id)
values('套餐','套餐','picture',1,10000)
insert into Category(category_name,[description],picture,flag,shop_id)
values('单点','单点','picture',1,10000)
go
select * from Product
insert into Product(product_name,product_img,quantity_per_unit,unit_price,units_in_stock
,units_on_order,flag,category_id,shop_id,flag_hotfood)
values('酸辣土豆丝饭','img','',12,10
,10,1,10000,10000,0)
insert into Product(product_name,product_img,quantity_per_unit,unit_price,units_in_stock
,units_on_order,flag,category_id,shop_id,flag_hotfood)
values('鱼香肉丝饭','img','',12,10
,10,1,10000,10000,0)
insert into Product(product_name,product_img,quantity_per_unit,unit_price,units_in_stock
,units_on_order,flag,category_id,shop_id,flag_hotfood)
values('卤肉饭','img','',12,10
,10,1,10000,10000,0)
insert into Product(product_name,product_img,quantity_per_unit,unit_price,units_in_stock
,units_on_order,flag,category_id,shop_id,flag_hotfood)
values('鸡肉饭','img','',12,10
,10,1,10000,10000,0)

go
insert into Product(product_name,product_img,quantity_per_unit,unit_price,units_in_stock
,units_on_order,flag,category_id,shop_id,flag_hotfood)
values('牛肉饭','img','',12,10
,10,1,10001,10000,0)
insert into Product(product_name,product_img,quantity_per_unit,unit_price,units_in_stock
,units_on_order,flag,category_id,shop_id,flag_hotfood)
values('羊肉饭','img','',12,10
,10,1,10001,10000,0)
insert into Product(product_name,product_img,quantity_per_unit,unit_price,units_in_stock
,units_on_order,flag,category_id,shop_id,flag_hotfood)
values('鸭肉饭','img','',12,10
,10,1,10001,10000,0)

go
select * from Tag
insert into Tag(tag_name,tag_img,[description],flag) values('','restaurant-icons invoice tooltip-on','该餐厅支持开发票,开票订单金额最低30元起,请在下单时填写好发票抬头',0)
insert into Tag(tag_name,tag_img,[description],flag) values('','restaurant-icons deliver-fee tooltip-on','该餐厅订餐需支付配送费5元',0)
insert into Tag(tag_name,tag_img,[description],flag) values('','restaurant-icons extra-discount tooltip-on','该餐厅支持立减优惠。每单满100元立减2元',0)

go
select * from City

--insert into City(city_id,city_name,flag) values('010','北京',0)
--insert into City(city_id,city_name,flag) values('021','上海',0)
--insert into City(city_id,city_name,flag) values('022','天津',0)


insert into City(city_id,city_name,flag) values('3','北京',0)
insert into City(city_id,city_name,flag) values('1','上海',0)
insert into City(city_id,city_name,flag) values('5','天津',0)
View Code

1.B.2,

1.C,功能实现代码(Function Implementation Code)返回顶部
warn 作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/ylbtech/p/4195792.html