网络图书销售数据库er图以及网络图书馆

本文为《图书借阅系统数据库设计》的第二篇文章,其它的内容可以查看之前或之后的文章,您的反馈是对我最大的鼓舞,谢谢大家!

项目介绍

在上一篇文章《图书借阅系统数据库设计之一》中,我们已经设计出了整个数据库系统的ER图,接下来的工作是将其转换为具体的数据库管理系统(DBMS)中可操作的对象。本项目采用了应用广泛的SQLite 数据库,它是一个无需配置即可使用的一个强大的关系型数据库,对于桌面端应用或手机端应用来说已经足够。我们使用上文中完成的ER图采用SQLite软件构建出这个图书借阅数据库,图1为上一篇文章构建完成的ER图,本文我们基于此ER图进行构建SQLite数据库。

 

图1

 

构建数据表创建出版社表

构建数据表时,我们选择没有依赖其它表的数据表进行创建操作,比如图1中出版社数据表不依赖于其它表,我们首先创建这个数据表。出版社表所使用的字段名与ER图中的属性名称对应关系如下表1所示。

 

表1

 

使用图2中的创建数据表SQL语句进行构建一个SQLite数据库表,将这个表的名称命名为publisher。

图2

图2中第1行关键字CREATE TABLE是一个创建表的命令,后面紧接着的是待创建的表的名称,本例为publisher,在圆括号内定义的内容为表的各个字段。第2行代码表示定义一个名称为id的字段,数据类型为INTEGER整型,并且这个字段值通过关键字UNIQUE设置了它的唯一性,即在表publisher中所有记录不能含有重复的id值。第3行代码表示创建一个名称为name的字段,这个字段的类型为文本类型,它的约束条件为非空,表示名称字段必须有文本内容。第4行表示创建的字段名称为address,类型也是文本型。第5行代码不是创建字段,而是设置这个表的主键字段名为id字段,即第一行代码所定义的字段,并指定了这个字段值具有自动递增功能,也就是说,在向这个表插入一条数据的时候,这个id值可以不用设置,它会自动生成一个数值,本项目中的其它id字段也使用了同样的设置。

创建读者表

表2定义了ER图中读者属性与数据表字段的对应关系,如下所示。

 

表2

 

创建表的命令与上述创建出版社表的命令相同,只是这个表的名字为”borrower”,如图2第8行代码所示,第9-14行代码设置这个表中各个字段的属性。第9行和14行代码设置id字段为一个递增式主键字段,其类型为INTEGER整型,第10行定义了一个类型为文本型的字段,名称为name,其值不能为空值;第11行代码定义了一个类型为文本的字段,这个字段没有其它约束,与上一个字段name相比,它的值是可以为空值的;接下来第12行代码设置字段telephone的类型为文本型,其值也不为空值,因为我们希望读者提供的信息中能够有一个有效联系方式,其中email、telephone和address都为读者的一种联系方式,在设计时,我们人为地选择了电话telephone字段为必须的数值,其它的两个字段值为可选值。这就是为什么第11行代码和第13行代码没有设定NOT NULL约束的原因。

 

图3

 

创建图书管理员表

表3显示了ER图中的属性与数据表中字段的对应关系,表3中的性别信息实际类型为布尔值,我们通过0值表示男性,通过1值表示女性。最后的三个类型为日期类型,格式如“2000-04-13”所示。

 

表3

 

创建图书管理员的命令如下图3所示,创建表的命令已经在前面两小节时做了详细介绍,之后我们将只介绍内容有所不同的字段,字段相同或相似的约束如本例中id、name与之前表中定义的字段类型和约束条件都做过说明,故不再赘述。图3中第32行代码表示性别的字段gender使用了INTEGER整型,通过数字值0表示男性、1表示女性。字段date_of_employed、date_of_birth和date_of_resign表示日期类型,如果使用过其它关系型数据库比如MySQL或PostgreSQL软件,就会产生疑问:日期数据对应的类型不应该为Date类型吗?但是SQLite是一个动态类型数据库,其存储类只有整数、浮点、文本、BLOB和NULL5种,并没有存储类为Date的类型,它是通过使用内置的函数来处理日期和时间数据的,用户可以将日期输入为”YYYY-MM-DD”格式的字符串进行存储,如本例中以上3个日期字段值。

 

图4

 

创建书籍表

ER图属性与数据表字段的对应关系如表4所示,这个表给出了一个外键为出版社id值,通过此值可以获取到出版社名称和地址相关信息。

 

表4

 

图4给出了创建书籍表的SQL语句,表中大部分字段使用的存储类型、约束条件在前文中已经做过介绍,只有第46行代码未曾介绍过其功能含义是什么,它表示在这张表中的第41行代码定义的字段publisher_id为一个外键,其对应的主键为表publisher中的id字段,也就是说,book表和publisher通过外键publisher_id建立了多对一的关系。

 

图5

 

创建借阅表

借阅表ER属性与数据表字段值的对应关系如表5所示

 

表5

 

图5为创建借阅表的SQL语句,在这条语句中,使用了3个外键,分别为读者id(borrower_id),图书管理员id(administrator_id)和书籍id(book_id)字段,三个字段分别通过第53-55行代码设置为外键字段。此外三个日期时间字段date_of_issued、date_due_for_return和date_returned使用了表示日期和时间的数据,格式为”YYYY-MM-DD HH:MM:SS“,同样其存储类型依然是文本类型,在进行数据操作时,使用SQLite对应的内置日期时间函数。

 

图6

 

这个数据库中的5张表的创建方法及其每一个字段都做了详细的描述,对表中字段的约束可以做更进一步的限制,比如其缺省值、取值范围等条件,我们暂时先不考虑这些约束,首先完成一个可以使用的数据库,之后按照需求或优化要求做进一步完善。下一步将实现书籍的插入和查询操作,谢谢阅读。

 

大家好,这里是喃喃,每天为你带来优质网文相关资讯,关注我不书荒。随着网络时代和IP价值的蓬勃发展,网络文学在我们的生活中越发随处可见了,今天我在看小说的时候突然看到一则消息,阅文集团百部优秀网文作品被国家图书馆永久典藏,我和我的小伙伴都惊呆了。

中国国家图书馆是国家总书库,国家书目中心,国家古籍保护中心,国家典籍博物馆,居世界国家图书馆第三位。通过国家拨交,社会捐赠和馆员努力购藏,形成了传统文献和数字文献相结合的浩瀚馆藏,百余年来,国家图书馆一路曲折前行,与时代同进步、与民族共命运,继承弘扬中华民族的文化命脉,为民族文化以及人类文明的传承和传播作出了重要贡献。

虽然今天国家图书馆收录的百本网文仅仅是数字文献,但是也是网文得到了国家的进一步承认,迎来新的发展,作为读者和粉丝,我特别开心,大家都知道十几年前网文的地位,家长们可谓惧之如虎。这次收录的小说主要以三观正、影响力广、影视改编为主进行收录,甚至是可以与家长一同观看的小说,比如我们熟知的《琅琊榜》、《庆余年》、《盗墓笔记》等,可谓是男女频去芜存菁的优选之作。

接下来一起看看有哪些精彩好看的小说,以下排名以官方排序为主,我按照男女频进行了分类,男频小说多数为我们熟知的大神、白金作家:《盗墓笔记》《第一序列》《斗罗大陆》《斗破苍穹》《诡秘之主》《诛仙》《庆余年》《赘婿》《孺子帝》《朱门风流》《宋时行》《唐砖》《覆汉》《秦吏》《官居一品》《明朝败家子》《医统江山》《大明望族》《上品寒士》《大道朝天》《从前有座灵剑山》《武道宗师》《地球纪元》《武极天下》《圣墟》《不朽凡人》

《一念永恒》《放开那个女巫》《天域苍穹》《太古神王》《斗战狂潮》《气冲星河》《仙葫》《全职法师》《死在火星上》《凡人修仙传》《盘龙》《星辰变》《修真四万年》《弑天刃》《太上章》《巫神纪》《光明纪元》《异常生物见闻录》《道君》《仙灵图谱》《牧神记》《十州风云志》《贞观大闲人》《朝阳警事》《重燃》《回到过去变成猫》《神藏》《美食供应商》《宠物天王》《大国重工》《材料帝国》《修真聊天群》《相声大师》《天启之门》《手术直播间》《大医凌然》《中国铁路人》《黎明医生》《鬼吹灯》《全职高手》《谍影风云》《复兴之路》《深夜书屋》《冠军之心》《凶案调查》《惊悚乐园》

女频小说多为影视改编的作品:《扶摇皇后》《琅琊榜》你和我的倾城时光》《师傅又掉线了》《谁在时光里倾听你》《玉堂留故》《似锦》《炮灰攻略》《听说你喜欢我》《写给鼹鼠先生的情书》《好想喜欢你》《乔先生的黑月光》《如果深海忘记了》《挚野》《非常暖婚,我的超级英雄》《花颜策》《君九龄》《诛砂》《凤门嫡女》《繁花春正茗》《覆手繁华》《金牌女律师《金陵春》《慕南枝》《你好消防员》《一品仵作》《明月度关山》《女机长》

总共男频72本,女频28本,部分作者有两本作品上榜,比如我吃西红柿、爱潜水的乌贼等,还有几本未完结作品上榜,跳舞、辰东、愤怒的香蕉等等,好想催更《赘婿》《圣墟》《天启之门》呀。本次上榜的小说都是经过精挑细选的作品,也有好多我没看过的小说,书荒可以一次看个痛快了,喃喃扒图好累呀,点个关注吧。

(此处已添加小程序,请到今日头条客户端查看)

以上就是今天的全部内容,我是喃喃蓝色,走过路过喜欢的还请点个关注,不喜欢的我再努力想想办法,我们下次再见。