网上书店管理系统数据库 sql sever

大作业1: 题目:仿当当网购物系统数据库设计与实现(2人一组)。

要求:

1.数据库各数据对象的设计与实现:表、约束、完整性体现、查询、视图,要求用合理的数据体现。

 2.文档:二人的完成过程,包括各自思考的内容,二人的讨论记录,最终的结论,要分条列出,不要写成流水账,要用书面语,不能口语化。

表结构设计

数据库设计过程中,主要有5张表,依次是用户表,图书表,图书类别表,订单表,订单明细表。

字段名

字段类型

默认

可为空

字段定义

备注

Userid

int

用户编号

主键,自增长

userName

varchar(255)

用户名

passeord

varchar(255)

用户密码

sex

Varchar(4)

age

int

表1-1用户表

字段名

字段类型

默认

可为空

字段定义

备注

categoryId

int

管理员编号

主键

categoryName

varchar(255)

用户名

唯一

       表1-2图书类别表

字段名

字段类型

默认

可为空

字段定义

备注

bookId

int

图书编号

主键

BookName

varchar(255)

书名

Price

float

价格

Picture

varchar(255)

图书照片称

CategoryId

Int

图书类别编号

外键

     表1-3图书表

字段名

字段类型

默认

可为空

字段定义

备注

orderId

int

图书编号

外键

userid

varchar(255)

书名

外键

orderdate

varchar(255)

时间

表1-4订单表

字段名

字段类型

默认

可为空

字段定义

备注

Orderitemid

int

订单明细编号

主键

bookid

int

图书编号

外键

orderid

int

订单编号

外键

Quantity

Int

数量

表1-5订单明细表

use [master]
go

if exists(select * from sysdatabases where name='bookStore')
drop database bookStore;
go

create database bookStore

ON PRIMARY
(
name='bookStore_data', 
 -- 主数据文件的物理名称	
filename='D:\bookStore_data.mdf',
--主数据文件的初始大小
size=5mb,
-- 主数据文件增长的最大值
maxsize=100mb, 
--主数据文件的增长率
filegrowth=20%
)
LOG ON
(
--日志文件的具体描述
--日志文件的逻辑名称
name='bookStore_log',
--日志文件的物理名称
filename='D:\bookStore_log.ldf',
--日志文件的初始大小
size=3mb,
--日志文件的大小
filegrowth=1mb
)
go

use bookStore;

create table catalog(
	catalogid int identity(1,1) not null,
	catalogname varchar(20) not null,
	primary key(catalogid)
);

create table book(
	bookid int identity(1,1) primary key not null,
	catalogid int not null,
	bookname varchar(20) not null,
	price int not null,
	picture varchar(30) not null,
	foreign key(catalogid) references catalog(catalogid) on delete no action on update cascade
);

create table users(
	userid int identity(1,1) primary key not null,
	username varchar(20) not null,
	password varchar(20) not null,
	sex varchar(4),
	age int,
);

create table orders(
	orderid int identity(1,1) primary key not null,
	userid int not null,
	orderdate datetime not null,
	foreign key (userid) references users(userid) on delete no action on update cascade
);

create table orderitem(
	orderitemid int identity(1,1) primary key not null,
	bookid int not null,
	orderid int not null,
	quantity int not null,
	foreign key (bookid)references book(bookid) on delete no action on update cascade,
	foreign key (orderid)references orders(orderid) on delete no action on update cascade,);

1、订单明细视图

create view ordersItemPrice
as
select users.username as 用户名,bookname as 图书名称,price as 单价,orderitem.quantity as 数量,(book.price*orderitem.quantity) as 合计, orders.orderdate as 时间
from users,orders,orderitem,book
where users.userid=orders.userid and orderitem.orderid=orders.orderid and orderitem.bookid=book.bookid;

2、订单总价视图

create view ordersTotalPrice
as
select users.username as 用户名 ,orders.orderid as 订单编号 ,sum(book.price*orderitem.quantity) as 应付金额, orders.orderdate as 时间
from users,orders,orderitem,book
where users.userid=orders.userid and orderitem.orderid=orders.orderid and orderitem.bookid=book.bookid
group by users.username,users.userId,orders.orderid,orders.orderdate;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序你好

互联网MySQL数据库应用潜规则

18420
来自专栏Jerry的SAP技术分享

SAP CRM Survey调查问卷的存储模型

数据库表CRM_SVY_DB_SVS,通过如下的函数CRM_SVY_DB_SVS_CREATE插入:

17930
来自专栏架构师之路

58到家MySQL军规升级版

一、基础规范 表存储引擎必须使用InnoDB 表字符集默认使用utf8,必要时候使用utf8mb4 解读: (1)通用,无乱码风险,汉字3字节,英文1字节 (...

459150
来自专栏杨建荣的学习笔记

MySQL 5.5迁移到5.7的性能问题排查案例

最近和同事排查了一个MySQL的SQL性能问题。问题的背景是有一个业务的数据库从MySQL 5.5迁移到了MySQL 5.7,原来在5.5中有一个SQL...

20320
来自专栏Java架构沉思录

为什么我建议你这样实现MySQL分页

之前分享了关于MySQL分页实现方案的文章《如何优雅地实现分页查询》,有些读者觉得写得太浅显了,今天我们就继续探讨这个话题,当然由于能力有限,这篇文章也未必能够...

18020
来自专栏杨建荣的学习笔记

使用shell批量生成数据整合式迁移的脚本(r8笔记第52天)

对于数据整合式迁移,基本就是小霸王的二合一,四合一,八合一这样的节奏,把几个尽可能相关业务的数据库中的数据整合到一个库里。彼此还是独立的schema,倒也是相安...

31140
来自专栏杨建荣的学习笔记

一次数据库响应慢的问题诊断(r6笔记第39天)

今天接到开发一个同事的电话,说前端系统那边反馈有一个查询很慢,初步怀疑是有一些并发或者锁之类的问题导致的。 接到问题之后,自己还是带着一些的紧迫感来处理的。 首...

28850
来自专栏文渊之博

列存储索引1:初识列存储索引

     2012以后提供了一种不同于传统B树结构的索引类型,就是内存列存储索引。这种索引应用了一种基于列的存储模式,也是一种新的查询执行的批处理模式,并且为特...

24550
来自专栏james大数据架构

聚合索引(clustered index) / 非聚合索引(nonclustered index)

以下我面试经常问的2道题..尤其针对觉得自己SQL SERVER 还不错的同志.. 呵呵 很难有人答得好.. 各位在我收集每个人擅长的东西时,大部分都把SQL...

74850
来自专栏好好学java的技术栈

微信支付和支付宝支付到springmvc+spring+mybatis环境全过程(支付宝和微信支付)

27620

扫码关注云+社区

领取腾讯云代金券