《软件技术基础》之《数据库习题解析》
《软件技术基础》之《数据库习题解析》
设计思路:
系统中抽象出操作、角色、用户三个概念,其中操作由项目中抽象出来,一个操作可以是一个URI,也可以是一个方法,比如创建用户的操作,删除用户的操作。角色是权限管理的核心,一个角色具有某些操作的权限,比如用户管理员,这个角色具有的权限有添加用户的权限、修改用户的权限、删除用户的权限。系统中的用户则被赋予若干个角色,比如如果有一个用户A被赋予了用户管理员的角色,那他就能添加、修改、删除用户。
表结构设计:
项目表
字段名 | 说明 |
---|---|
id | |
token | ** |
name | 项目名称 |
ctime | 创建时间 |
mtime | 修改时间 |
操作表
字段名 | 说明 |
---|---|
id | |
project_id | 项目id |
uri | 操作地址 |
name | 操作名称 |
status | 状态 |
ctime | 创建时间 |
mtime | 修改时间 |
角色表
字段名 | 说明 |
---|---|
id | |
project_id | 项目id |
actions | 具有权限的操作 |
status | 状态 |
ctime | 创建时间 |
用户表
字段名 | 说明 |
---|---|
id | |
project_id | 项目 |
name | 用户名 |
roles | 所属的角色 |
status | 状态 |
ctime | 创建时间 |
mtime | 修改时间 |
注:把圆角矩形换成椭圆
关系模型:
工厂(工厂编号,厂名,地址)
产品(产品编号,产品名,规格)
职工(职工号,姓名,工厂编号,聘期,工资)
生产(工厂编号,产品编号,计划数量)
每个关系模式的主键、外键如下:
工厂:主键是工厂编号,没有外键。
产品:主键是产品编号,没有外键。
职工:主键是职工号,外键是工厂编号。
生产:主键是(工厂编号,产品编号),外键是工厂编号、产品编号。
注:把圆角矩形换成椭圆
关系模型:
系(系名,系址,系主任姓名,办公电话)
教师(工作证号码,教师姓名,出生日期,党派,所属系名)
课程(课程号,课程名,先修课程号,授课教师)
学生(学号,学生姓名,性别)
选修(学号,课程号,成绩)