Eric Lannister 2024-03-22 16:10 采纳率: 50%
浏览 8

概念模型设计E-R图的一个实际问题

一个简单的E-R图构建问题:

有一个健身俱乐部,每个会员订购一个套餐,一个套餐可包含多个项目,一个项目也可被包含在多个套餐中,一个项目拥有多个教练,每当一个会员订购了套餐后,就分配给他此套套餐中所有项目的所有专职教练。依据上述描述,画出E-R图(属性可以省略),并将该E-R图转换为关系模型,标明其主码和外码。

笔者对会员和教练这个关系感到困惑,怎么画比较好呢?

  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间 Java领域优质创作者 2024-03-22 16:11
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    可以这样设计E-R图: 会员(Member)-订购(Order)-套餐(Package)-包含(Contain)-项目(Item)-拥有(Have)-教练(Coach) 其中,订购和包含是多对多的关系,需要一个中间实体(OrderItem)来表示。拥有是多对多关系,需要一个中间实体(CoachItem)来表示。 E-R图如下所示: ![ER diagram](https://i.imgur.com/BhjupjT.png) 转换为关系模型后,可以得到以下表格: 会员(Member): | 属性 | 类型 | |--------|------------| | ID | int | | 姓名 | varchar | | 电话 | varchar | | 地址 | varchar | | ... | ... | 主键:ID 套餐(Package): | 属性 | 类型 | |--------|------------| | ID | int | | 名称 | varchar | | 价格 | float | | ... | ... | 主键:ID 项目(Item): | 属性 | 类型 | |--------|------------| | ID | int | | 名称 | varchar | | ... | ... | 主键:ID 订购(Order): | 属性 | 类型 | |---------|------------| | OrderID | int | | MemberID | int | | PackageID | int | | 订单日期 | datetime | | ... | ... | 主键:OrderID 外键:MemberID references Member(ID) 外键:PackageID references Package(ID) 包含(Contain): | 属性 | 类型 | |----------|------------| | ContainID | int | | PackageID | int | | ItemID | int | | ... | ... | 主键:ContainID 外键:PackageID references Package(ID) 外键:ItemID references Item(ID) 教练(Coach): | 属性 | 类型 | |---------|------------| | CoachID | int | | 姓名 | varchar | | 电话 | varchar | | ... | ... | 主键:CoachID 项目教练(CoachItem): | 属性 | 类型 | |---------|------------| | CoachItemID | int | | CoachID | int | | ItemID | int | | ... | ... | 主键:CoachItemID 外键:CoachID references Coach(CoachID) 外键:ItemID references Item(ID) 客户项目教练(MemberItemCoach): | 属性 | 类型 | |------------|----------| | MemberID | int | | ItemID | int | | CoachID | int | | ... | ... | 主键:(MemberID, ItemID, CoachID) 外键:MemberID references Member(ID) 外键:ItemID references Item(ID) 外键:CoachID references Coach(CoachID)
    评论

报告相同问题?

问题事件

  • 创建了问题 3月22日