一、类之间的关系如下图所示:

二、UML与数据库设计主要讨论的内容:

三、依赖关系强调的是类操作间的使用关系,类图到表结构的映射中并不涉及这种关系,所以只需讨论泛化关系、关联关系到表的映身规范。

  1.泛化关系的映射

    (1)、将父类和子类均映射为表

      优点:表结构的更改非常方便

      缺点:表的数量较多,相关的数据分散在不同的表中,数据读写时间较长,报表的生成较为困难。

    (2)、只将子表映射为表

      优点:表的数量较少,相关的数据集中在一个表中,数据的读写较为方便。

      缺点:表结构的修改较为困难,因为修改父类后,要同时修改子类对应的表。

    (3)、只将父类映射为表

      优点:表的数量少,数据读写方便

      缺点:耦合性强,需要增加一列,以表时类的角色,浪费存储空间较多。

    综合:以上三种方法各有所长,在实际应用中,根据具体情况选用。

           一般情况下,建议选用第二种方式,即只将子类映射为表,各表包含子类自身的属性和继承自父类的属性。

  2.关联关系的映射

    关联关系分为一对一关联、一对多关联和多对多关联。

    (1)、一对一关联映射

      将相关的两个类分别映射成两张表,并将任意一张表的主键放入另一张表作为外键。

    (2)一对多关联映射

      将关联的两个类映射为两张表,并将“一”表的主键放在“多”表中作为外键。

    (3)、多对多关联映射

      》为相关联的两个类分别建立两张表

      》再建一个关联表。这个关联表的属性由两部分组成:前两个表的主键,关联本身的属性。

    综合:关联关系要为每一个类生成一个数据库表。

            关系映射:

        1)、一对一、一对多的关系映射为数据库表的主外键关联(一方的主键加入另一方成为外键)

        2)、多多的关系映射:产生第三张表,将两个多方的主键加入其中成为外键,两个外键的组合成为主键。

    利用数据库三范式检查表,从而考察类图的分析是否合理,消除冗余数据。检查数据是否能够反映用例视图的需要;进一步与用户再次确认数据的使用。

最新文章

  1. GitHub管理代码-随笔
  2. jquery实现css3动画
  3. const和readonly区别
  4. Javascrpt无刷新文件上传
  5. winform listbox与textbox组合提示框 模糊查询
  6. [SQL]insert、update 表触发器应用的demo
  7. ANR
  8. viewport使用 html5
  9. 【转】CCUserDefault类深入分析——2013-08-25 22
  10. js监控视频播放的事件并打印log
  11. 关于jQuery中的ajax的方法介绍
  12. Python 第三篇(下):collections系列、集合(set)、单双队列、深浅copy、内置函数
  13. C#中调用c++的dll
  14. IOS开发中AVFoundation中AVAudioPlayer的使用
  15. Spring Cloud 服务端注册与客户端调用
  16. xml的作用
  17. css+div基本知识;
  18. js---手机端滑动进度条
  19. volatile关键值
  20. 小白学习安全测试(一)——Http协议基础

热门文章

  1. type=INNODB和engine=INNODB的区别
  2. Codeforces Round #185 (Div. 2) B. Archer 水题
  3. Codeforces Round #329 (Div. 2) B. Anton and Lines 逆序对
  4. DB9 公头母头引脚定义及连接
  5. QProcess调用外部程序方式的差异
  6. IDispatch接口 - GetIDsOfNames和Invoke(转)
  7. js学习笔记第二篇
  8. SSH Spring3\Java1.8 “Unable to instantiate Action, xxAction, defined for 'xxAction_login' in namespace '/'null”
  9. Modified LCS
  10. uva10004 Bicoloring 黑白染色问题,DFS