记开发个人图书收藏清单小程序开发(三)DB设计
主要是参考豆瓣的图书查询接口:
https://api.douban.com/v2/book/isbn/:9780132350884
返回内容如下:
{
"rating": {
"max": 10,
"numRaters": 361,
"average": "8.8",
"min": 0
},
"subtitle": "A Handbook of Agile Software Craftsmanship",
"author": [
"Robert C. Martin"
],
"pubdate": "2008-8-11",
"tags": [
{
"count": 295,
"name": "编程",
"title": "编程"
},
{
"count": 257,
"name": "programming",
"title": "programming"
},
{
"count": 150,
"name": "软件开发",
"title": "软件开发"
},
{
"count": 109,
"name": "程序设计",
"title": "程序设计"
},
{
"count": 100,
"name": "计算机",
"title": "计算机"
},
{
"count": 87,
"name": "软件工程",
"title": "软件工程"
},
{
"count": 66,
"name": "敏捷开发",
"title": "敏捷开发"
},
{
"count": 55,
"name": "agile",
"title": "agile"
}
],
"origin_title": "",
"image": "https://img3.doubanio.com/view/subject/m/public/s29624974.jpg",
"binding": "Paperback",
"translator": [ ],
"catalog": "",
"pages": "464",
"images": {
"small": "https://img3.doubanio.com/view/subject/s/public/s29624974.jpg",
"large": "https://img3.doubanio.com/view/subject/l/public/s29624974.jpg",
"medium": "https://img3.doubanio.com/view/subject/m/public/s29624974.jpg"
},
"alt": "https://book.douban.com/subject/3032825/",
"id": "3032825",
"publisher": "Prentice Hall",
"isbn10": "0132350882",
"isbn13": "9780132350884",
"title": "Clean Code",
"url": "https://api.douban.com/v2/book/3032825",
"alt_title": "",
"author_intro": "Robert C. “Uncle Bob” Martin has been a software professional since 1970 and an international software consultant since 1990. He is founder and president of Object Mentor, Inc., a team of experienced consultants who mentor their clients worldwide in the fields of C++, Java, C#, Ruby, OO, Design Patterns, UML, Agile Methodologies, and eXtreme programming.",
"summary": "Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.
Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer—but only if you work at it.
What kind of work will you be doing? You’ll be reading code—lots of code. And you will be challenged to think about what’s right about that code, and what’s wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft.
Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code—of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.
Readers will come away from this book understanding
How to tell the difference between good and bad code
How to write good code and how to transform bad code into good code
How to create good names, good functions, good objects, and good classes
How to format code for maximum readability
How to implement complete error handling without obscuring code logic
How to unit test and practice test-driven development
This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.",
"price": "USD 49.99"
}
豆瓣图书查询返回内容
刚才出去拿纱窗了,等晚上设计DB的时候继续更新。
基于豆瓣API获取的Response信息,所以抽取如下信息:
| 字段名称 | 豆瓣字段 | 字段描述 |
| Title | title | |
| SubTitle | subtitle | |
| Authors | author | |
| Translator | translator | |
| ISBN13 | isbn13 | |
| ISBN10 | isbn10 | |
| AuthorIntro | author_intro | |
| Summary | summary | |
| Publisher | publisher | |
| Binding | binding | |
| OriginTitle | origin_title | |
| Pages | pages | |
| ImageUrl | image | |
| Pubdate | pubdate | |
| Catalog | catalog | |
| Tags | tags |
拆分如上字段出来。
......
因为在看世界杯,所以设计有点断断续续的,放出DB的Diagram:


当前的逻辑应该是没有问题了,现在需要丰富的是DB的内容,以及每条线的发展设计。
顺便放出几个Type的Script:
CREATE FUNCTION [core].[Matter#Type] ()
RETURNS TABLE
WITH SCHEMABINDING, ENCRYPTION
AS RETURN
(
select 1 as _Book
, 2 as _ShelfBook
, 4 as _BookList
)
CREATE FUNCTION [core].[Party#Type] ()
RETURNS TABLE
WITH SCHEMABINDING, ENCRYPTION
AS RETURN
(
select 1 as _Administrator
, 4 as _User
---------------------------------------
, 16 as _Shelf
)
CREATE FUNCTION [base].[BookInfo#Type] ()
RETURNS TABLE
WITH SCHEMABINDING, ENCRYPTION
AS RETURN
(
select 1 as _Summary
, 2 as _Catalog
, 4 as _AuthorIntro
)
好的,今天就先到这吧。
记开发个人图书收藏清单小程序开发(三)DB设计的更多相关文章
- 记开发个人图书收藏清单小程序开发(十)DB开发——新增图书信息
昨晚完成了Web端新增图书信息的功能,现在就差DB的具体实现了. 因为我把Book相关的信息拆分的比较多,所以更新有点小麻烦. 首先,我需要创建一个Book Type的Matter: 然后,将图片路径 ...
- 记开发个人图书收藏清单小程序开发(五)Web开发
决定先开发Web端试试. 新增Web应用: 选择ASP.NET Core Web Application,填写好Name和Location,然后点击OK. 注意红框标出来的,基于.NET Core 2 ...
- 记开发个人图书收藏清单小程序开发(九)Web开发——新增图书信息
书房信息初始化已完成,现在开始处理图书信息新增功能. 主要是实现之前New Razor Pages的后台部分. 新增需要保存的Model:Book.InitSpec.cs /Models/Book.I ...
- 记开发个人图书收藏清单小程序开发(六)Web开发
Web页面开发暂时是没有问题了,现在开始接上Ptager.BL的DB部分. 首先需要初始化用户和书房信息.因为还没有给其他多余的设计,所以暂时只有个人昵称和书房名称. 添加 Init Razor Pa ...
- 记开发个人图书收藏清单小程序开发(四)DB设计
早上起来,又改动了一下: 主要是,将非常用信息全部拆分出来,让Table尽量的小,小到不能继续拆分了,这样区分DB逻辑.增加了FileBank存储Book的封面图片,统一管理图片资源. 新添加的Typ ...
- 记开发个人图书收藏清单小程序开发(七)DB设计
前面的书房初始化的前端信息已经完善,所以现在开始实现DB的Script部分. 新增Action:Shelf_Init.sql svc.sql CREATE SCHEMA [svc] AUTHORIZA ...
- 记一次基于 mpvue 的小程序开发及上线实战
小程序名称:一起打车吧 项目地址: 客户端:https://github.com/jrainlau/taxi-together-client 服务端:https://github.com/jrainl ...
- 微信小程序开发系列(一)小程序开发初体验
开发小程序所需的基本技能 关于小程序的介绍和使用场景这里不作介绍,这个系列的文章会一步一步地带领大家快速地学习和掌握小程序的开发. 关于还没有接触过小程序的开发者来说,最关心的问题无非就是,开发小 ...
- [转]微信小程序开发系列(一)小程序开发初体验
本文转自:http://www.cnblogs.com/rennix/p/6287432.html 开发小程序所需的基本技能 关于小程序的介绍和使用场景这里不作介绍,这个系列的文章会一步一步地带领 ...
随机推荐
- Fiddler Web Debugger的截断功能(图文详解)
不多说,直接上干货! Fiddler的重头好戏是截断数据包,首先需要设置截取数据包的类型,依次打开菜单“Rules->automatic breakpoints”,可以选择“before req ...
- Javac语法糖之Enum类
枚举类在Javac中是被当作类来看待的. An enum type is implicitly final unless it contains at least one enum constant ...
- MySQL的Sleep进程占用大量连接解决方法
第一部分为产生大量sleep进程的原理及对应解决方法第二部分为设置wait_timeout值,有效减少sleep进程 ========================================= ...
- MediaWIKI部署流程
1.下载mediawiki,地址:https://www.mediawiki.org/wiki/MediaWiki 2.下载xxamp集成软件,地址:https://www.apachefriends ...
- ES6-Proxy and Reflect
依赖文件地址 :https://github.com/chanceLe/ES6-Basic-Syntax/tree/master/js <!DOCTYPE html> <html&g ...
- docker容器网络通信原理分析(转)
概述 自从docker容器出现以来,容器的网络通信就一直是大家关注的焦点,也是生产环境的迫切需求.而容器的网络通信又可以分为两大方面:单主机容器上的相互通信和跨主机的容器相互通信.而本文将分别针对这两 ...
- 解决Nginx 504 Gateway Time-out问题
解决方案:在http里设置FastCGI相关参数,如: worker_processes 1; events { worker_connections 1024; } http { include m ...
- C#循环读取文件流,按行读取
public Dictionary<string,string> GetSourceDisksElements(String section) { section = "[&qu ...
- ruby楼层排序问题
求教楼层排序问题 要求正确楼层排序为: B2,B1,1F,2F,3F...10F,11F 现有这13个无序的楼层 怎么排列成上面的格式? 求教 luikore 1楼 , 19小时前 1人喜欢 sort ...
- c#socket TCP同步网络通信
一.socket简介 socket就是套接字,它是引用网络连接的特殊文件描述符,由三个基本要素组成: 1: AddressFamily(网络类型) 2: SocketType(数据传输类型) 3:Pr ...