小白是这样打造图书管理系统的(二)

千里之行始于足下,设计数据结构~

前文参考:

《小白是这样打造图书管理系统的(一)》


书接上文,我们说到我们已经完成了数据库后台核心以及访问核心的客户端工具的安装。

完成了这些,我们就可以开始构建我们想要的数据库了。

这时,认真听讲的你肯定会举起小手提问,为什么要构建数据库,构建怎样的数据库,怎么构建?

不错,小同学你很聪明嘛,不过不要着急,待我慢慢道来!


在使用数据库前,我们肯定需要先设计好它,然后再导入到数据后台引擎中才能正常使用。

打个比方,就好比图书放在书架上一样,图书需要事先分门别类。

那么,图书是怎么做到分门别类的呢?

很简单啊,设计不同类别的书架,再把相应类别的图书放上去不就好了!

你看看,类似论如何把大象塞进冰箱,就是这么简单哈!

那么如何设计不同类别的书架呢?

这正是我们现在要解决的问题,当然,我们是通过设计数据库来实现,把不同类别的数据放到相应类别的数据字段中。


第二弹:设计数据库

一、数据表结构


1、创建数据库

在 Windows 系统命令控制台上,输入以下命令。

# 新建目录 C:\BMS2020\DATA,用于放置数据库文件
mkdir -p C:\BMS2020\DATA
 


在 SSMS 查询窗口中执行以下命令。

-- 创建数据库 BMS2020
USE [master]

CREATE DATABASE [BMS2020] ON  PRIMARY 
( NAME = N'BMS2020', FILENAME = N'C:\BMS2020\DATA\BMS2020.mdf' , SIZE = 6144KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'BMS2020LOG', FILENAME = N'C:\BMS2020\DATA\BMS2020.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
 


右击 SSMS 左侧数据库一项,刷新后点开 BMS2020 > 表,可以看到还没有用户表。


2、创建数据表

使用以下SQL语句构建数据表,一共三张表,分别是图书数据表、读者数据表和日志数据表。

USE [BMS2020]

-- 图书数据表
CREATE TABLE [dbo].[bms_book](
    [book_ID] [nchar](20) NULL,
    [book_title] [nchar](50) NULL,
    [book_Press] [nchar](20) NULL,
    [book_Author] [nchar](20) NULL,
    [book_ISBN] [nchar](20) NULL,
    [book_PublishTime] [datetime] NULL,
    [book_Price] [nchar](10) NULL,
    [book_DateStorage] [datetime] NULL,
    [book_BeLent] [tinyint] NULL,
    [book_BeLentCounts] [int] NULL,
    [book_Remark] [text] NULL
) ON [PRIMARY]

-- 读者数据表
CREATE TABLE [dbo].[bms_reader](
    [reader_ID] [nchar](15) NULL,
    [reader_Name] [nchar](10) NULL,
    [reader_Gender] [nchar](10) NULL,
    [reader_BeLent] [tinyint] NULL,
    [reader_BeLentCounts] [int] NULL
) ON [PRIMARY]

-- 日志数据表
CREATE TABLE [dbo].[bms_log](
    [log_ID] [nchar](20) NULL,
    [log_Reader_ID] [nchar](15) NULL,
    [log_Reader_Name] [nchar](10) NULL,
    [log_Book_ID] [nchar](20) NULL,
    [log_Book_Title] [nchar](50) NULL,
    [log_Date_Lent] [datetime] NULL,
    [log_Date_Return] [datetime] NULL
) ON [PRIMARY]
 


三张数据表成功生成了。


如果你在设计数据表结构时,发现无法保存更改,那么就需要在 SSMS 选项中修改设定。


SSMS 菜单的 工具 > 选项 ,找到左侧 设计器 > 表设计器和数据库设计器 ,把右侧 阻止保存要求重新创建表的更改 一项的钩去掉后确定保存即可。


二、填充测试数据

光有了数据表还远远不够,里面空空如也没有数据,我们得往里面放点测试数据。

我们要管理图书,当然系统中先要有图书,所以我们需要先导入图书信息。

-- 填充图书数据
USE [BMS2020]

INSERT INTO [dbo].[bms_book]
           ([book_ID]
           ,[book_title]
           ,[book_Press]
           ,[book_Author]
           ,[book_ISBN]
           ,[book_PublishTime]
           ,[book_Price]
           ,[book_DateStorage]
           ,[book_BeLent]
           ,[book_BeLentCounts])
     VALUES
           ('B20130605161450'
           ,'中国茶道-茶'
           ,'内蒙古人民出版社'
           ,'陈虹'
           ,'9787204084500'
           ,'2006-06-01 00:00:00.000'
           ,'30'
           ,'2013-06-04 19:21:25.000'
           ,0
           ,0),
           ('B20130605161451'
           ,'江南--不沉之舟'
           ,'中国文联出版社'
           ,'祝勇'
           ,'9787507962712'
           ,'2006-01-03 00:00:00.000'
           ,'22'
           ,'2013-06-04 20:02:14.000'
           ,0
           ,0),
           ('B20130605161452'
           ,'放弃是一种有效选择'
           ,'中国纺织出版社'
           ,'韩岊'
           ,'9787506440806'
           ,'2013-06-07 00:00:00.000'
           ,'18'
           ,'2013-06-04 19:21:25.000'
           ,0
           ,0)
 


其次,我们还需要读者信息。

-- 填充读者信息
USE [BMS2020]

INSERT INTO [dbo].[bms_reader]
           ([reader_ID]
           ,[reader_Name]
           ,[reader_Gender]
           ,[reader_BeLent]
           ,[reader_BeLentCounts])
     VALUES
           ('R00001'
           ,'胡闹闹'
           ,'男'
           ,0
           ,0),
           ('R00002'
           ,'亚历特山大'
           ,'男'
           ,0
           ,0),
           ('R00003'
           ,'安妮卡烈尼不娜'
           ,'女'
           ,0
           ,0)
 


最后,是读者借阅图书的记录信息。

-- 填充借阅记录信息
USE [BMS2020]

INSERT INTO [dbo].[bms_log]
           ([log_ID]
           ,[log_Reader_ID]
           ,[log_Reader_Name]
           ,[log_Book_ID]
           ,[log_Book_Title]
           ,[log_Date_Lent]
           ,[log_Date_Return])
     VALUES
           ('L20130705153849'
           ,'R00001'
           ,'胡闹闹'
           ,'B20130605161452'
           ,'放弃是一种有效选择'
           ,'2020-07-05 15:43:09.000'
           ,'2020-07-15 15:43:09.000')
 


以上仅仅作为演示例子,设计了一些基本的数据表和字段。

如果是在实际复杂业务情况下,可能会涉及到更多的字段或数据表。

比如图书种类(文学类还是科技类等)、图书所在书架位置或图书其它一些信息等等。

又比如不同批次图书或不同部门图书等等情况下的多表关联问题等等。

还有,为了更加简单易理解,这里不涉及索引之类的内容,我们先把项目做出个雏形出来,有了初步的感性认识后再细化强化完善各个功能。


OK,数据我们已经设计好了,下一步我们就可以通过编程来访问操作这些数据了。

那么具体怎么做呢?

好了,休息一下先,我知道好学的你不累,但直觉告诉我,下一集是重点,内容繁多。

咱们下一集再展开细讲,不要迟到哦!


继续阅读:

《小白是这样打造图书管理系统的(三)》


WeChat @网管小贾 | www.sysadm.cc


提交评论

安全码
刷新

© 2020-present 网管小贾 | 微信公众号 @网管小贾
许可协议:CC-BY-NC 4.0 | 转载文章请注明作者出处及相关链接