图书管理系统的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
猜你喜欢
- 今天分享 3 个 Python 编程小技巧,来看看你是否用过?1、如何按照字典的值的大小进行排序我们知道,字典的本质是哈希表,本身是无法排序
- 本文实例讲述了Python实现的json文件读取及中文乱码显示问题解决方法。分享给大家供大家参考,具体如下:city.json文件的内容如下
- 前言很多时候在windows下压缩文件没问题,但是到了Linux下,出现乱码,很常见。以前在Ubuntu下,用`unzip -O GBK f
- Python数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFlymSQL MySQL PostgreSQL Micros
- 使用了这么就pip命令,但是一直是简单使用,很多命令都是用了查,查了用,今天把常用的命令汇总一下,方便使用。命令:pip由上图可以看到 pi
- 统计十篇新闻TF-IDF统计TF-IDF词频,每篇文章的 top10 的高频词存储为 json 文件TF-IDFTF-IDF(term fr
- 图像可能在生成、传输或者采集过程中夹带了噪声,去噪声是图像处理中常用的手法。通常去噪声用滤波的方法,比如中值滤波、均值滤波。但是那样的算法不
- 加载静态文件在一个网页中,不仅仅只有一个 html 骨架,还需要 css 样式文件, js 执行文件以及一些图片等。因此在 DTL 中加载静
- 最近在无忧脚本混了一阵子,回复了一些贴子,自己却没有做出什么东东让大家看看,心里有些不安,于是写了下边的一点东西,本来应该发在类封装区的,考
- 本文实例讲述了python概率计算器实现方法。分享给大家供大家参考。具体实现方法如下:from random import randrang
- 查看MySQL执行的语句想实时查看MySQL所执行的sql语句,类似mssql里的事件探查器。对my.ini文件进行设置,打开文件进行修改:
- 前言前段时间在本地写的一个WebSocket程序部署到服务器上时出错,通过一段时间的研究,终于解决了,所以本文就来给大家分析下并给出解决的方
- 如何在独立服务器上创建用户?假设独立服务器是intels,我们用ADSI来创建一个用户liyanbing,初始口令定为3625:
- 本章为大家介绍的模块,在python2的时候,并不受宠,主要的问题是存在安全漏洞,发现问题就要及时解决,因此在现在3版本中,已经得到了妥善的
- 先来回顾一下栈和队列的基本概念:相同点:从"数据结构"的角度看,它们都是线性结构,即数据元素之间的关系相同。不同点:栈(
- Python爬虫可以爬取的东西有很多,Python爬虫怎么学?简单的分析下:如果你仔细观察,就不难发现,懂爬虫、学习爬虫的人越来越多,一方面
- 变量赋值与对象赋值对比<?php // 声明一个变量并赋值 $a = 1; // 将数据类型
- 本文实例讲述了Python计算两个日期相差天数的方法。分享给大家供大家参考,具体如下:#!/usr/bin/pythonimport tim
- 视频观看视频Pygame模块之pygame.draw本文将主要介绍Pygame的draw模块,主要内容翻译自pygame的官方文档pygam
- 在电子产品的设计中,大家经常提到简洁是设计的重要元素。可是很多产品,不见得简洁就是第一要素。简洁的设计,必须是在对用户需求透彻理解,引导用户