Uml 类图到关系模型的转换;继承和用于匹配的表
对于一个学校项目,我应该设计上学期项目的系统。我们正在使用UML,创建一个非常简单的用例图(没有Uml 类图到关系模型的转换;继承和用于匹配的表,uml,relational-database,class-diagram,use-case,Uml,Relational Database,Class Diagram,Use Case,对于一个学校项目,我应该设计上学期项目的系统。我们正在使用UML,创建一个非常简单的用例图(没有类型的废话,只是参与者指向系统内部的用例),从中我们制作一个类图,然后是一个关系模型 用例和类图尝试: 最后一张图是我最终想到的问题可能是我的用例 我的应用程序允许人们/餐馆列出他们愿意捐赠的食物。为无家可归者提供食物的慈善机构要求食物。如果有火柴,慈善机构可以创建一条卡车路线,从所有火柴中提取食物 我很难弄清楚如何表示匹配,也弄不清楚这个食物钻石和连接到路由的匹配是否有意义。我知道在关系建模
类型的废话,只是参与者指向系统内部的用例),从中我们制作一个类图,然后是一个关系模型
用例和类图尝试:
最后一张图是我最终想到的问题可能是我的用例
我的应用程序允许人们/餐馆列出他们愿意捐赠的食物。为无家可归者提供食物的慈善机构要求食物。如果有火柴,慈善机构可以创建一条卡车路线,从所有火柴中提取食物
我很难弄清楚如何表示匹配,也弄不清楚这个食物钻石和连接到路由的匹配是否有意义。我知道在关系建模中继承通常是个坏主意。这只是到处都有FK的问题吗?我觉得自己好像在兜圈子。这个对象-关系映射主题可能非常复杂。但看看你的图表,这里有一个过于简化的拇指规则:
- 将没有泛化和专门化的每个类映射到关系表。当存在时,它们将充当主键
- 将具有两个专门化的每个类映射到一个关系表,该关系表组合了类的字段及其专门化的所有字段。这种技术被称为。这并不总是一个好的解决方案,但在您的cas中,它完全适合您李>
- 对于每个一对n关系(
,或1-1..*
),在1侧添加主键(ID)作为外键,并在n侧的表中添加。对于您的聚合,也要这样做。这就是所谓的李>1-0..*
- 对于n到n链接(
),您需要添加一个关系表,其中包含两个链接表的ID(每个表定义为外键,两个表一起作为组合主键)。这就是所谓的李>1..*-1..*
- 对于第二个
中的一对一聚合,我认为添加两个字段就足够了,每个字段对应一个ItemMatch
(使用不同的名称)李>foodItemID
- 您还需要将由于
关系而添加的外键定义为可选(可为空)0..*
- Martin Fowler的优秀著作“”详细解释了几种继承映射策略的优缺点,如果您想了解更多的话。除了简单的单继承表之外,您还会发现更复杂的替代方法,如、和李>
- 评论中建议的Web文章(谢谢!)