【问题标题】:Entity Relationships: Difference between solid line and dotted line实体关系:实线和虚线的区别
【发布时间】:2020-07-04 16:00:30
【问题描述】:

在使用表关系。实线和虚线的用法有什么区别?

举例

表:消息/ 表:用户

一个用户有 0 条或多条消息。

实线还是虚线?

【问题讨论】:

  • 参照完整性。见:stackoverflow.com/questions/9347917/…
  • 在 MySQL Workbench EER Diagrams 中,虚线表示非识别关系,实线表示识别关系:dev.mysql.com/doc/workbench/en/wb-relationship-tools.html
  • @PaulF 为什么您将答案添加为评论而不是正常答案?
  • @MikeLischke:我只是把它看作是告诉 OP 阅读文档,这不是我应该得到任何赞誉的东西。我想我可以把它放在那里,以便将其标记为已回答以供将来参考。
  • 此外,在看到此 SO 条目后,文档已更新。希望现在更清楚一点。

标签: mysql mysql-workbench entity-relationship


【解决方案1】:

如 cmets 所述,虚线表示非识别关系。

实线 => 识别关系

来自 mySQL 文档的定义: 标识关系是指没有父表就无法唯一标识子表的关系。通常这 发生在创建中间表以解决 多对多的关系。在这种情况下,主键通常是 由两个原始主键组成的复合键 表格。

示例: 我们有一个应用程序可以使用此模型记录员工的到达时间:

user { id_user, name, department, job } 
arrival_log { id_user, arrival_time, department }

到达的每一行都需要指定 user_id。如果没有 user_id,我们将不知道谁到达了办公室。实体到达日志是一个弱日志,因为它依赖于其他实体的存在(用户)才能工作。

虚线 => 非识别关系。

定义:非识别关系是指可以独立于父母识别孩子的关系。

例子:

flower( flower_id, flower_latin_name, flower_type_id )
flower_type( flower_type_id, name, description )

flower 和flower_type 之间的关系是不可识别的,因为每个flower_type 都可以被识别,而不必存在于花表中。

【讨论】:

    猜你喜欢
    • 2019-10-09
    • 2015-01-14
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    • 2015-05-08
    • 2022-12-01
    相关资源
    最近更新 更多