图书管理系统的sqlserver数据库设计示例
作者:honeysyt_ 发布时间:2024-01-18 08:50:50
首先,在写数据库时需要遵循以下几个原则:
数据库的命名规范:
方便代码的交流和维护
不影响代码的效率,不与大众习惯冲突
使代码更美观,阅读更方便
使代码的逻辑更清晰,更易于理解
术语的定义:
Pascal方法:将标识符的首字母和后面连接的每个单词的首字母都大写 ,可以对三字母或更多的字符的标识符使用。例如:BackColor
Camel方法:标识符的首字母小写,而后面连接的单词首字母都大写。例如:backColor
基本原则:
以大小写敏感编写SQL语句
尽量使用Unicode数据类型
优先使用参数化SQL查询代替拼接SQL查询
禁止使用拼音+英语的方式来命名SQL对象或变量
尽量使用存储过程代替SQL语句
大写t-sql语言的所有关键字,谓词和系统函数
其次:
对数据库进行分析
1.分析数据库,根据图书管理系统的需求分析,列出表
图书类别:主要包括图书的编号,类别名称等
图书基本信息:主要包括图书编号,图书名称,类别编号等
读者类别:主要包括类别编号,类别名称,借书最大量等
读者基本信息:主要包括读者编号,读者姓名,性别,住址,读者类别
借阅表:主要包括记录编号,读者编号,图书编号,借出日期,还入日期。
2。根据分析的数据库画出实体图
图书类别:
图书基本信息:
读者类别:
读者基本信息:
借阅表:
3.画出数据库E-R图
4.数据表关系图:
5.根据需求,给出数据字典
6.对数据库进行增、删、改、查相关操作,编写sql脚本实现。
CREATE DATABASE BMS
IF OBJECT_ID(N't_booktype',N'U') IS NOT NULL
DROP TABLE t_booktype
CREATE TABLE t_booktype(
typeno int primary key not null,
typename varchar(30) not null
)
IF OBJECT_ID(N't_books',N'U') IS NOT NULL
DROP TABLE t_books
CREATE TABLE t_books(
bookno int primary key not null,
bookname varchar(30) not null,
typeno int not null
)
IF OBJECT_ID(N't_readertype',N'U') IS NOT NULL
DROP TABLE t_readertype
CREATE TABLE t_readertype(
readertypeno int primary key not null,
readername varchar(30) not null,
lendnumber int not null
)
IF OBJECT_ID(N't_readerinfo',N'U') IS NOT NULL
DROP TABLE t_readerinfo
CREATE TABLE t_readerinfo(
readerno int primary key not null,
readername varchar(30) not null,
readeraddress varchar(30) not null,
readertypeno int not null
)
IF OBJECT_ID(N't_lendbook',N'U') IS NOT NULL
DROP TABLE t_lendbook
CREATE TABLE t_lendbook(
recordno int primary key not null,
readerno int not null,
bookno int not null,
lendtime datetime ,
returntime datetime
)
INSERT INTO t_booktype
VALUES('1005','悬疑类')
INSERT INTO t_books
VALUES('1025','盗墓笔记','1005')
INSERT INTO t_readertype
VALUES('0005','黄秋萍',20)
INSERT INTO t_readerinfo
VALUES('0005','黄秋萍','南昌市','0005')
INSERT INTO t_lendbook
VALUES('0005','0002','1013','2004-07-28','2004-11-16')
SELECT *
FROM t_books
UPDATE t_books
SET bookname='深入理解计算机系统'
WHERE bookno='1001'
UPDATE t_readertype
SET readername='吴娇'
WHERE readertypeno='0001'
SELECT *
FROM t_readerinfo
--查询图书名字
SELECT bookname
FROM t_books
--查询图书类别
SELECT typename
FROM t_booktype
--查询名字叫吴娇的借书记录
SELECT t_readerinfo.readername,t_lendbook.lendtime,t_lendbook.returntime
FROM t_readerinfo join t_lendbook on t_readerinfo.readerno=t_lendbook.readerno
WHERE t_readerinfo.readername='吴娇'
这里仅进行了部分代码的实现。
如有哪里不正确望指出!
来源:https://blog.csdn.net/qq_37647529/article/details/78439260


猜你喜欢
- 一、Pytest简介Pytest is a mature full-featured Python testing tool that he
- 两年前,我们开发了一套基于Flash的文件(主要是图片)上传RIA应用,提供给阿里巴巴的用户使用。如果你使用过Wordpress或flick
- 关于 channel 的使用,有几点不方便的地方:1.在不改变 channel 自身状态的情况下,无法获知一个 channel 是否关闭。2
- 本笔记目的是通过tensorflow实现一个两层的神经网络。目的是实现一个二次函数的拟合。如何添加一层网络代码如下:def add_laye
- 1.流程控制语 break用于结束整个循环结构,直接退出整个循环例:用两种循环模拟密码输入输入正确就退出循环,输入错误可以重新输入,有三次输
- MySql授权用户权限如何设置首先:去 mysql 库中查看 root 用户的权限select * from user where user
- 本文主要分享基于python的数据分析三方库pandas,numpy的一次爬坑经历,发现并分析了python语言对于浮点数精度处理不准确的问
- 一、查看實例名時可用1、服务—SQL Server(实例名),默认实例为(MSSQLSERVER)或在连接企业管理时-查看本地实例2、通過注
- 工作时同事间几mb小文件的传输,一般使用QQ或者微信就足够了,但当传输文件几百MB或者几十G时,这种方法的效率就显得不足了。本篇就是简单说明
- 一、为何使用Tkinter而非PyQt众所周知,在Python中创建图形界面程序有很多种的选择,其中PyQt和wxPython都是很热门的模
- 一、前言Python语言近年来人气爆棚。它广泛应用于数据科学,人工智能,以及网络安全问题中,由于代码可读性较强,学习效率较高,吸引了许多非科
- 本文实例讲述了Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能。分享给大家供大家参考,具体如下:由于目前工作
- 0.触发器的基本概念触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据
- 1.Django的简介Django是一个基于MVC构造的框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Djang
- 树,因其清晰明了的展现形式而被广泛的使用日常的开发过程中我们需要经常与“树”打交道,例如公司的组织架构树、服务器的项目归属树,管理后台侧边树
- 最近JETBRAINS发布了目前最受欢迎的python-web开发框架,可以看到最受欢迎的还是Django和Flask,那么本文就对上榜的1
- 目录创建conda环境下载Apple提供的tensorflow支持安装环境前准备工作安装依赖及相关库测试参考资料苹果为M1芯片的Mac提供了
- 如下所示:<FormItem label="上传头像" prop="image"> &n
- 一份基于cnn的手写数字自识别的代码,供大家参考,具体内容如下# -*- coding: utf-8 -*-import tensorflo
- 按单字节计算字符串的长度,汉字算两个字节。<script type="text/JavaScript"