标签:curd 老师 没有 table 找对象 严格 避免 rem 类型
目录
设计一套数据库首先要熟悉当前系统有哪些功能,具体的业务流程是什么
一套学校用的学生管理系统,最核心的功能如下
要完成以上所有的功能,需要操作以上对象的相关信息. 以上对象的信息可以按照固定格式存储在数据库中!
数据库设计的第一步就是找出业务相关的的核心对象 ,一类物体/对象的信息固定存储在一张表中!
概念
数据库设计三大核心的步骤:
分析系统业务中的核心对象.
注意: 一些隐含的对象可能因为对业务不熟练,可能找不到 ,.比如:学生请假条对象. 活动对象等..... 所以进行数据库设计之前,一定要把系统功能和业务流程整理清楚.当然遗漏的对象可以在需要时再补充.数据库设计没有一步到位的.
属性概念: 物体/对象的名词或形容词的描述.学名叫"属性",,每个属性对应表中的1个列!
对象中每个属性就对应表中的每个列
为了避免数据冗余(重复),用学生id和课程id代替名字!
电脑中存储数据是严格区分不同类型的! 年龄:整数int, 名字:字符串;char/varchar/string
表和表之间的关系有: 1---N(1对多) 或 N---1(多对1) 或 1-1(1对1) 或 N--N (多对多)
独立一个中间表/关系表(保存另外两张表的主键引用)
id | pid(商品编号) | oid(订单编号) |
---|---|---|
1 | P001 | D001 |
2 | P002 | D001 |
3 | P003 | D001 |
4 | P001 | D002 |
5 | P001 | D003 |
6 | P002 | D002 |
#查 订单D001买的所有的商品!
select * from 表名 where oid='D001'
# 查 商品 P001被下单了多少次?
select * from 表名 where pid = 'P001'
# 看:D001 买了几个商品!
select sum(num) from guanxi_product_order
where oid='D001'
对象分析出来后就可以建表了,一般建表时遵循的原则如下.
建表规则
比如:地区表 和 员工表
id(地区编号) | name | code | pcode父编号 |
---|---|---|---|
1 | 北京 | 11 | |
2 | 山东 | 37 | |
3 | 济南 | 3701 | 37 |
4 | 青岛 | 3702 | 37 |
5 | 海淀 | 1101 | 11 |
6 | 房山 | 1102 | 11 |
-- 所有省
select * from area where pcode is null
-- 山东省所有的市
select code from area where name= '山东'
select * from area where pcode = 37
select * from area where pcode = (
select code from area where name= '山东'
)
前提: 熟悉项目的业务流程!
标签:curd 老师 没有 table 找对象 严格 避免 rem 类型
原文地址:https://www.cnblogs.com/bignote/p/11610070.html