对象和对象之间的关系:
如何确定双方实体的关系
1对多 主表中的任意一条数据 可以在从表中找到多条数据对应 但是从表中任意一条数据只能 在主表中找到一条数据对应
多对多 主表中的任意一条数据 可以在从表中找到多条数据对应 从表中任意一条数据只能 在主表中找到多条数据对应
表的三范式:
这些条件归纳为3条 (三范式)
第一范式 所有的列都是不可再分的单元的
第二范式 一个表只能描述一件事情 表中的所有的列 都必须依赖主键(直接和间接依赖 )
第三范式要求一个表中不能包含在其它表中已定义的非主键列
要求 一般的的数据库设计 一定要满足 第一范式和第二范式 不要求满足第三范式
冗余问题 不满足第三范式 但是提高了查询的性能
尽量减少表的连接
1-多 (1用户 发表多篇文章 某篇文章只能属于一个用户 )
1-1 (1个人 1个身份证)
多-多(1用户-多个权限 ,某个权限-多个权限)如何确定双方实体的关系
主表 + 从表
1对1 主表中的任意一条数据 只能在从表中 存在一条数据对应 从表中的任意一条数据也只能在主表中找到一条数据对应1对多 主表中的任意一条数据 可以在从表中找到多条数据对应 但是从表中任意一条数据只能 在主表中找到一条数据对应
多对多 主表中的任意一条数据 可以在从表中找到多条数据对应 从表中任意一条数据只能 在主表中找到多条数据对应
分析员工表和部门表的关系
员工表 主表 部门表 从表 多对一powerdesigner应该注意的
1 oracle关键字 默认带有双引号 必须去除
选中物理模型图 --数据库- edit current dbms - script -sql - format -case sensitivity usingquote 勾选no在表中体现关系
1对1
在任何一张表中添加对方的主键作为外键 并且在外键列上加上唯一约束
1对多
在多的一方的表中添加对方的主键作为外键
多对多
产生一张新表 新表中存在两个字段 这两个字段就是两张表的主键(联合组件)表的三范式:
这些条件归纳为3条 (三范式)
第一范式 所有的列都是不可再分的单元的
第二范式 一个表只能描述一件事情 表中的所有的列 都必须依赖主键(直接和间接依赖 )
第三范式要求一个表中不能包含在其它表中已定义的非主键列
要求 一般的的数据库设计 一定要满足 第一范式和第二范式 不要求满足第三范式
冗余问题 不满足第三范式 但是提高了查询的性能
尽量减少表的连接