From 38773472befce36543b54c5e734d272cbbac421f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=85=88=E4=BC=98?= <1967671450@qq.com> Date: Thu, 12 Sep 2024 23:13:56 +0800 Subject: [PATCH 1/3] test --- ...41\347\220\206\347\263\273\347\273\237.md" | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 "\345\255\231\345\205\210\344\274\230/20240912 \347\275\221\344\270\212\344\271\246\345\272\227\347\256\241\347\220\206\347\263\273\347\273\237.md" diff --git "a/\345\255\231\345\205\210\344\274\230/20240912 \347\275\221\344\270\212\344\271\246\345\272\227\347\256\241\347\220\206\347\263\273\347\273\237.md" "b/\345\255\231\345\205\210\344\274\230/20240912 \347\275\221\344\270\212\344\271\246\345\272\227\347\256\241\347\220\206\347\263\273\347\273\237.md" new file mode 100644 index 0000000..4f5674b --- /dev/null +++ "b/\345\255\231\345\205\210\344\274\230/20240912 \347\275\221\344\270\212\344\271\246\345\272\227\347\256\241\347\220\206\347\263\273\347\273\237.md" @@ -0,0 +1,41 @@ +# 网上书店管理系统的数据库设计 + +1. 实体: + 1. 分类 + 1. 分类编号 + 2. 分类名称 + 2. 图书: + 1. 图书编号 + 2. 价格 + 3. 书名 + 4. 出版社 + 5. 作者 + 6. 出版日期 + 7. 版次 + 8. ISBN书号 + 9. 封面图片 + 10. 包装 + 11. 纸张 + 12. 图书详情 + 3. 出版社 + 1. 出版社编号 + 2. 出版社名称 + 3. 地址:先故意违反第一范式 + 4. 电话 + 4. 作者 + 1. 作者编号 + 2. 作者姓名 + 3. 性别 + 4. 生日 + 5. 图片 + 6. 作者简介 + 5. 书店 + 6. 用户 + 7. 图片 + 8. 订单 + 9. 库存 + 10. 销售 + 11. 地址 + 1. 地址编号 + +![image-20240912231303391](https://gitee.com/sxy20031002/picture-bed-warehouse/raw/master/imgss/202409122313433.png) \ No newline at end of file -- Gitee From 23787f2dd3965f2530bc422a23bbc91295b4e600 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=85=88=E4=BC=98?= <1967671450@qq.com> Date: Fri, 13 Sep 2024 23:21:08 +0800 Subject: [PATCH 2/3] test --- ...263\273\347\273\237\345\210\235\345\247\213\350\241\250.md" | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 "\345\255\231\345\205\210\344\274\230/20240913 \347\275\221\344\270\212\344\271\246\345\272\227\347\256\241\347\220\206\347\263\273\347\273\237\345\210\235\345\247\213\350\241\250.md" diff --git "a/\345\255\231\345\205\210\344\274\230/20240913 \347\275\221\344\270\212\344\271\246\345\272\227\347\256\241\347\220\206\347\263\273\347\273\237\345\210\235\345\247\213\350\241\250.md" "b/\345\255\231\345\205\210\344\274\230/20240913 \347\275\221\344\270\212\344\271\246\345\272\227\347\256\241\347\220\206\347\263\273\347\273\237\345\210\235\345\247\213\350\241\250.md" new file mode 100644 index 0000000..831ab37 --- /dev/null +++ "b/\345\255\231\345\205\210\344\274\230/20240913 \347\275\221\344\270\212\344\271\246\345\272\227\347\256\241\347\220\206\347\263\273\347\273\237\345\210\235\345\247\213\350\241\250.md" @@ -0,0 +1,3 @@ +# 网上书店管理系统初始表 + +![image-20240913232012893](https://gitee.com/sxy20031002/picture-bed-warehouse/raw/master/imgss/202409132320027.png) \ No newline at end of file -- Gitee From 4a90eedd44b4c50538a57142fd2a2caf980e621b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=85=88=E4=BC=98?= <1967671450@qq.com> Date: Mon, 16 Sep 2024 14:47:25 +0800 Subject: [PATCH 3/3] test --- ...73\347\273\237\345\256\214\346\210\220.md" | 345 ++++++++++++++++++ 1 file changed, 345 insertions(+) create mode 100644 "\345\255\231\345\205\210\344\274\230/20240915 \347\275\221\344\270\212\344\271\246\345\272\227\347\256\241\347\220\206\347\263\273\347\273\237\345\256\214\346\210\220.md" diff --git "a/\345\255\231\345\205\210\344\274\230/20240915 \347\275\221\344\270\212\344\271\246\345\272\227\347\256\241\347\220\206\347\263\273\347\273\237\345\256\214\346\210\220.md" "b/\345\255\231\345\205\210\344\274\230/20240915 \347\275\221\344\270\212\344\271\246\345\272\227\347\256\241\347\220\206\347\263\273\347\273\237\345\256\214\346\210\220.md" new file mode 100644 index 0000000..9c60ff8 --- /dev/null +++ "b/\345\255\231\345\205\210\344\274\230/20240915 \347\275\221\344\270\212\344\271\246\345\272\227\347\256\241\347\220\206\347\263\273\347\273\237\345\256\214\346\210\220.md" @@ -0,0 +1,345 @@ +## 1,需求分析 + +数据:图书,用户,出版社,作者,出版社信息,分类,订单,订单详情,评论,购物车 + +Users和 Orders:一对多关系,表示一个用户可以有多个订单。 + +Users和 Reviews:一对多关系,表示一个用户可以写多个评论。 + +Users 和 Cart:一对多关系,表示一个用户的购物车中可以包含多本书。 + +Publishers 和 Books:一对多关系,表示一个出版社可以出版多本书籍。 + +Authors 和 BookAuthors:一对多关系,表示一个作者可以写多本书。 + +Books 和 BookAuthors:多对多关系,表示一本书可以有多个作者,一个作者也可以写多本书 ,可以用第三方表bookauthors连接。 + +Books 和 OrderDetails:一对多关系,表示一本书可以在多个订单详情中出现。 + +Books 和 BookPublishingInfo:一对多关系,表示一本书可以有多个出版信息记录。 + +Books 和 classify:多对多关系,表示一本书可以属于多个分类,一个分类可以有多本书,可以用第三方表bookcategories连接。 + +Categories和 BookCategories:一对多关系,表示一个分类可以包含多本书。 + +Books 和 Reviews:一对多关系,表示一本书可以有多个评论。 + +Orders和OrderDetails : 一对多关系,表示一个订单可以有多个订单详情。 + +books和cart:一对多关系,表示一本书可以放到多个购物车里边。 + +books和reviews:一对多关系,表示一本图书可以有多个评论。 + +## 2,模型图 + +![image-20240915191739458](https://gitee.com/sxy20031002/picture-bed-warehouse/raw/master/imgss/202409151917512.png) + +![image-20240915191806697](https://gitee.com/sxy20031002/picture-bed-warehouse/raw/master/imgss/202409151918857.png) + +![image-20240915191902362](https://gitee.com/sxy20031002/picture-bed-warehouse/raw/master/imgss/202409151919414.png) + +## 3,sql代码 + +```sql +/*==============================================================*/ +/* DBMS name: MySQL 5.0 */ +/* Created on: 2024/9/15 19:19:58 */ +/*==============================================================*/ + +-- 创建数据库 +CREATE DATABASE IF NOT EXISTS Books; +USE Books; + +-- 删除已存在的表 +DROP TABLE IF EXISTS BookCategories; +DROP TABLE IF EXISTS Authors; +DROP TABLE IF EXISTS BookAuthors; +DROP TABLE IF EXISTS Books; +DROP TABLE IF EXISTS Classify; +DROP TABLE IF EXISTS Comments; +DROP TABLE IF EXISTS PublishingInfo; +DROP TABLE IF EXISTS Orders; +DROP TABLE IF EXISTS OrderDetails; +DROP TABLE IF EXISTS Press; +DROP TABLE IF EXISTS Shopping; +DROP TABLE IF EXISTS Users; + +/*==============================================================*/ +/* Table: BookCategories */ +/*==============================================================*/ +CREATE TABLE BookCategories +( + classify_id INT NOT NULL, + book_id INT NOT NULL, + PRIMARY KEY (classify_id, book_id) +); + +/*==============================================================*/ +/* Table: Authors */ +/*==============================================================*/ +CREATE TABLE Authors +( + author_id INT NOT NULL AUTO_INCREMENT, + author_name VARCHAR(255), + sex VARCHAR(2), + phone VARCHAR(255), + PRIMARY KEY (author_id) +); + +/*==============================================================*/ +/* Table: BookAuthors */ +/*==============================================================*/ +CREATE TABLE BookAuthors +( + author_id INT NOT NULL, + book_id INT NOT NULL, + PRIMARY KEY (author_id, book_id) +); + +/*==============================================================*/ +/* Table: Books */ +/*==============================================================*/ +CREATE TABLE Books +( + book_id INT NOT NULL AUTO_INCREMENT, + press_id INT NOT NULL, + book_name VARCHAR(255), + price FLOAT, + stock INT, + state VARCHAR(255), + ISBN VARCHAR(255), + PRIMARY KEY (book_id) +); + +/*==============================================================*/ +/* Table: Classify */ +/*==============================================================*/ +CREATE TABLE Classify +( + classify_id INT NOT NULL AUTO_INCREMENT, + classify_name VARCHAR(255), + PRIMARY KEY (classify_id) +); + +/*==============================================================*/ +/* Table: Comments */ +/*==============================================================*/ +CREATE TABLE Comments +( + comment_id INT NOT NULL AUTO_INCREMENT, + user_id INT NOT NULL, + book_id INT NOT NULL, + content VARCHAR(255), + reviewdate DATETIME, + PRIMARY KEY (comment_id) +); + +/*==============================================================*/ +/* Table: PublishingInfo */ +/*==============================================================*/ +CREATE TABLE PublishingInfo +( + edition_id INT NOT NULL AUTO_INCREMENT, + book_id INT NOT NULL, + edition VARCHAR(255), + publishdate DATE, + PRIMARY KEY (edition_id) +); + +/*==============================================================*/ +/* Table: Orders */ +/*==============================================================*/ +CREATE TABLE Orders +( + order_id INT NOT NULL AUTO_INCREMENT, + user_id INT NOT NULL, + orderdate DATE, + totalamount DECIMAL(10, 2), + PRIMARY KEY (order_id) +); + +/*==============================================================*/ +/* Table: OrderDetails */ +/*==============================================================*/ +CREATE TABLE OrderDetails +( + particulars_id INT NOT NULL AUTO_INCREMENT, + book_id INT NOT NULL, + order_id INT NOT NULL, + quantitys INT, + unitprice DECIMAL(10, 2), + PRIMARY KEY (particulars_id) +); + +/*==============================================================*/ +/* Table: Press */ +/*==============================================================*/ +CREATE TABLE Press +( + press_id INT NOT NULL AUTO_INCREMENT, + press_name VARCHAR(255), + address VARCHAR(255), + telephone VARCHAR(255), + PRIMARY KEY (press_id) +); + +/*==============================================================*/ +/* Table: Shopping */ +/*==============================================================*/ +CREATE TABLE Shopping +( + shopping_id INT NOT NULL AUTO_INCREMENT, + user_id INT NOT NULL, + book_id INT NOT NULL, + quantity INT, + PRIMARY KEY (shopping_id) +); + +/*==============================================================*/ +/* Table: Users */ +/*==============================================================*/ +CREATE TABLE Users +( + user_id INT NOT NULL AUTO_INCREMENT, + user_name VARCHAR(255), + password VARCHAR(255), + email VARCHAR(255), + registerdate DATE, + status VARCHAR(255), + PRIMARY KEY (user_id) +); + +/*==============================================================*/ +/* Foreign Key Constraints */ +/*==============================================================*/ +ALTER TABLE BookCategories ADD CONSTRAINT FK_BookCategories_Classify FOREIGN KEY (classify_id) +REFERENCES Classify (classify_id) ON DELETE RESTRICT ON UPDATE RESTRICT; + +ALTER TABLE BookCategories ADD CONSTRAINT FK_BookCategories_Books FOREIGN KEY (book_id) +REFERENCES Books (book_id) ON DELETE RESTRICT ON UPDATE RESTRICT; + +ALTER TABLE BookAuthors ADD CONSTRAINT FK_BookAuthors_Authors FOREIGN KEY (author_id) +REFERENCES Authors (author_id) ON DELETE RESTRICT ON UPDATE RESTRICT; + +ALTER TABLE BookAuthors ADD CONSTRAINT FK_BookAuthors_Books FOREIGN KEY (book_id) +REFERENCES Books (book_id) ON DELETE RESTRICT ON UPDATE RESTRICT; + +ALTER TABLE Books ADD CONSTRAINT FK_Books_Press FOREIGN KEY (press_id) +REFERENCES Press (press_id) ON DELETE RESTRICT ON UPDATE RESTRICT; + +ALTER TABLE Comments ADD CONSTRAINT FK_Comments_Books FOREIGN KEY (book_id) +REFERENCES Books (book_id) ON DELETE RESTRICT ON UPDATE RESTRICT; + +ALTER TABLE Comments ADD CONSTRAINT FK_Comments_Users FOREIGN KEY (user_id) +REFERENCES Users (user_id) ON DELETE RESTRICT ON UPDATE RESTRICT; + +ALTER TABLE PublishingInfo ADD CONSTRAINT FK_PublishingInfo_Books FOREIGN KEY (book_id) +REFERENCES Books (book_id) ON DELETE RESTRICT ON UPDATE RESTRICT; + +ALTER TABLE Orders ADD CONSTRAINT FK_Orders_Users FOREIGN KEY (user_id) +REFERENCES Users (user_id) ON DELETE RESTRICT ON UPDATE RESTRICT; + +ALTER TABLE OrderDetails ADD CONSTRAINT FK_OrderDetails_Books FOREIGN KEY (book_id) +REFERENCES Books (book_id) ON DELETE RESTRICT ON UPDATE RESTRICT; + +ALTER TABLE OrderDetails ADD CONSTRAINT FK_OrderDetails_Orders FOREIGN KEY (order_id) +REFERENCES Orders (order_id) ON DELETE RESTRICT ON UPDATE RESTRICT; + +ALTER TABLE Shopping ADD CONSTRAINT FK_Shopping_Books FOREIGN KEY (book_id) +REFERENCES Books (book_id) ON DELETE RESTRICT ON UPDATE RESTRICT; + +ALTER TABLE Shopping ADD CONSTRAINT FK_Shopping_Users FOREIGN KEY (user_id) +REFERENCES Users (user_id) ON DELETE RESTRICT ON UPDATE RESTRICT; +``` + + + +## 4,navicat执行 + +![image-20240915172814018](https://gitee.com/sxy20031002/picture-bed-warehouse/raw/master/imgss/202409151728064.png) + +## 5,添加测试数据 + +```sql +INSERT INTO `authors` VALUES (1, '沈泽刚', '男', '15118283848'); +INSERT INTO `authors` VALUES (2, '吴承恩', '男', '15118283848'); +INSERT INTO `authors` VALUES (3, '曹雪芹', '男', '15116263646'); + +INSERT INTO `bookauthors` VALUES (1, 1); +INSERT INTO `bookauthors` VALUES (2, 2); +INSERT INTO `bookauthors` VALUES (3, 3); + +INSERT INTO `bookcategories` VALUES (1, 1); +INSERT INTO `bookcategories` VALUES (3, 2); +INSERT INTO `bookcategories` VALUES (3, 3); + +INSERT INTO `books` VALUES (1, 1, 'java程序设计', 88.88, 1000, '上架', '9787302632627'); +INSERT INTO `books` VALUES (2, 2, '西游记', 66.66, 500, '上架', '9787107319532'); +INSERT INTO `books` VALUES (3, 3, '红楼梦', 77.77, 600, '上架', '9787020002207'); + +INSERT INTO `classify` VALUES (1, '计算机'); +INSERT INTO `classify` VALUES (2, '程序设计'); +INSERT INTO `classify` VALUES (3, '文学'); + +INSERT INTO `comments` VALUES (1, 1, 1, '太棒了', '2024-08-08 00:00:00'); +INSERT INTO `comments` VALUES (2, 2, 2, '还不错哦', '2024-09-09 00:00:00'); +INSERT INTO `comments` VALUES (3, 3, 3, '强力推荐哦', '2024-09-13 00:00:00'); + +INSERT INTO `orderdetails` VALUES (1, 1, 1, 50, 88.88); +INSERT INTO `orderdetails` VALUES (2, 2, 2, 50, 66.66); +INSERT INTO `orderdetails` VALUES (3, 3, 3, 50, 77.77); + +INSERT INTO `orders` VALUES (1, 1, '2024-09-05', 10000.00); +INSERT INTO `orders` VALUES (2, 2, '2024-09-10', 12000.00); +INSERT INTO `orders` VALUES (3, 3, '2024-09-13', 1000.00); + +INSERT INTO `press` VALUES (1, '清华大学出版社', '清华大学', '010-83470504'); +INSERT INTO `press` VALUES (2, '北京大学出版社', '北京大学', '010-62752032'); +INSERT INTO `press` VALUES (3, '人民文学出版社', '北京市东城区朝阳门内大街166号', '16636465666'); + + +INSERT INTO `publishinginfo` VALUES (1, 1, '3', '2018-05-20'); +INSERT INTO `publishinginfo` VALUES (2, 2, '7', '2020-05-04'); +INSERT INTO `publishinginfo` VALUES (3, 3, '3', '2017-06-06'); + + +INSERT INTO `shopping` VALUES (1, 1, 1, 50); +INSERT INTO `shopping` VALUES (2, 2, 2, 60); +INSERT INTO `shopping` VALUES (3, 3, 3, 50); + +INSERT INTO `users` VALUES (1, 'sxy', 'sxy666', 'sxy@qq.com', '2023-11-11', '在线'); +INSERT INTO `users` VALUES (2, 'yxs', 'yxs666', 'yxs@qq.com', '2024-01-01', '在线'); +INSERT INTO `users` VALUES (3, 'syx', 'syx666', 'syx@qq.com', '2024-05-20', '在线'); +``` + + + +## 6,使用sql语句检测,是否满足需求分析中设想的场景 + +```sql +-- 先优捡到1000块钱,于是想把这个钱拿去买红楼梦图书,捐给山区一中学, +-- 发现这个中学有15个班级,每个班一本,帮先优算算能否买到15本红楼梦,并且查询出红楼梦的信息。 +SELECT book_name 书名,price 单价,stock 库存,state 状态,ISBN,author_name 作者,sex 性别, +classify_name 图书分类,content 评论,press_name 出版社,edition 版次,publishdate 出版日期 +from bookauthors bas +join books bok on bas.book_id=bok.book_id +join authors aus on aus.author_id=bas.author_id +join bookcategories bos on bos.book_id=bok.book_id +join classify cy on cy.classify_id=bos.classify_id +join comments cos on cos.book_id=bok.book_id +join orderdetails ors on ors.book_id=bok.book_id +join orders ord on ord.order_id=ors.order_id +join press prs on prs.press_id=bok.press_id +join publishinginfo puo on puo.book_id=bok.book_id +join shopping spg on spg.book_id=bok.book_id +join users us on us.user_id=ord.user_id +where book_name="红楼梦" +答案是不够,留着自己花 +``` + +![image-20240916142422633](https://gitee.com/sxy20031002/picture-bed-warehouse/raw/master/imgss/202409161424723.png) + +## 7,课堂笔记 + +![image-20240916142801539](https://gitee.com/sxy20031002/picture-bed-warehouse/raw/master/imgss/202409161428675.png) + -- Gitee