2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 数据库设计模式经典例子实例步骤

数据库设计模式经典例子实例步骤

时间:2023-03-05 23:39:15

相关推荐

数据库设计模式经典例子实例步骤

前言:

设计模式:

设计的经典案例:

实例:

-----------------

前言:

BD了一下,好像没有说明数据库设计和数据库设计范例的。也没有出现数据库“设计模式”之类的书籍。

虽然数据库设计的基础是三范式。可是具体需求不一样,设计出来的就不一样。

设计模式:

/view/48116d7ba98271fe910ef92a.html

设计的经典案例:

实例1:电子商务网站类

/moll_77/article/details/78697672

/p/74c310b1d89f

实例2: 树形结构设计:

类别表_1(Type_table_1)

名称类型约束条件说明

type_id int无重复类别标识,主键

type_namechar(50)不允许为空类型名称,不允许重复

type_father int不允许为空该类别的父类别标识,如果是顶节点的话设定为某个唯一值

实例3:多用户及其权限管理的设计

功能表(Function_table)

名称类型约束条件说明

f_id int无重复功能标识,主键

f_name char(20)不允许为空功能名称,不允许重复

f_desc char(50)允许为空功能描述

用户组表(User_group)

名称类型约束条件说明

group_id int无重复用户组标识,主键

group_name char(20)不允许为空用户组名称

group_power char(100)不允许为空用户组权限表,内容为功能表f_id的集合

用户表(User_table)

名称类型约束条件说明

user_id int无重复用户标识,主键

user_name char(20)无重复用户名

user_pwd char(20)不允许为空用户密码

user_type int不允许为空所属用户组标识,和User_group.group_id关联

分类4:

四、简洁的批量m:n设计

碰到m:n的关系,一般都是建立3个表,m一个,n一个,m:n一个。但是,m:n有时会遇到批量处理的情况,例如到图书馆借书,一般都是允许用户同时借阅n本书,如果要求按批查询借阅记录,即列出某个用户某次借阅的所有书籍,该如何设计呢?让我们建好必须的3个表先:

书籍表(Book_table)

名称类型约束条件说明

book_id int无重复书籍标识,主键

book_no char(20)无重复书籍编号

book_name char(100)不允许为空书籍名称

……

借阅用户表(Renter_table)

名称类型约束条件说明

renter_id int无重复用户标识,主键

renter_name char(20)不允许为空用户姓名

……

借阅记录表(Rent_log)

名称类型约束条件说明

rent_id int无重复借阅记录标识,主键

r_id int不允许为空用户标识,和Renter_table.renter_id关联

b_id int不允许为空书籍标识,和Book_table.book_id关联

rent_date datetime不允许为空借阅时间

五、冗余数据的取舍

上篇的“树型关系的数据表”中保留了一个冗余字段,这里的例子更进一步——添 加了一个冗余表。先看看例子:我原先所在的公司为了解决员工的工作餐,和附近的一家小餐馆联系,每天吃饭记账,费用按人数平摊,月底由公司现金结算,每个 人每个月的工作餐费从工资中扣除。当然,每天吃饭的人员和人数都不是固定的,而且,由于每顿工作餐的所点的菜色不同,每顿的花费也不相同。例如,星期一中 餐5人花费40元,晚餐2人花费20,星期二中餐6人花费36元,晚餐3人花费18元。为了方便计算每个人每个月的工作餐费,我写了一个简陋的就餐记账管理程序,数据库里有3个表:

员工表(Clerk_table)

名称类型约束条件说明

clerk_id int无重复员工标识,主键

clerk_name char(10)不允许为空员工姓名

每餐总表(Eatdata1)

名称类型约束条件说明

totle_id int无重复每餐总表标识,主键

persons char(100)不允许为空就餐员工的员工标识集合

eat_date datetime不允许为空就餐日期

eat_type char(1)不允许为空就餐类型,用来区分中、晚餐

totle_price money不允许为空每餐总花费

persons_num int不允许为空就餐人数

就餐计费细表(Eatdata2)

名称类型约束条件说明

id int无重复就餐计费细表标识,主键

t_id int不允许为空每餐总表标识,和Eatdata1.totle_id关联

c_id int不允许为空员工标识标识,和Clerk_table.clerk_id关联

price money不允许为空每人每餐花费

实例:

比如说,根据界面提取出业务规则,然后建模

/oldlegy/article/details/78158728

参考文档:

/Kevin-ZhangCG/p/10270996.html

/hxwzwiy/archive//03/27/2419060.html

/hhuahualala/article/details/51589133

/SseJava/article/details/5099226?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

/DBFocus/archive//10/12/2208580.html#4380728/DBFocus/archive//10/12/2208580.html#4380728

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。