mysql - 鱼尾纹 Mysql 关系

标签 mysql mysql-workbench

我正在使用 MySQL Workbench 为客户构建数据库。

在这种情况下,一张票可以有很多号码,但一个池可以有很多票。

我不确定我的设置是否正确。

我可以看到将“Tickets”表链接到“TicketNumber”表的乌鸦脚具有一对多关系。这是否意味着一张票有很多票号?

我在“TicketNumbers”表中创建了一个 FK,该表使用“ticket_id”列作为引用链接到 Tickets 表。

对于池,我在“Pools”表中创建了一个 FK,该表使用“pool_id”作为引用链接到“Tickets”表。鱼尾纹似乎表明一张票可以有多个池,但事实并非如此?

我是否正确完成了此操作,还是应该通过在相反的表中创建 FK 来反转关系?

Tickets System

最佳答案

我讨厌回答有关图形的问题:-)

带有实线的鱼尾纹表示从单线到多条线(三角形或鱼尾纹)的识别关系。这意味着链接到的字段是接收表的主键的一部分。

虚线表示非识别关系。意味着链接字段不是主键的一部分。

在您的情况下,关系应该是“FROM Pools TO Tickets”,您的关系是相反的并且应该是破折号(非识别)。

Ticket 和 TicketNumbers 之间的关系似乎是正确的。这不是我最喜欢的做事方式,因为我发现 number_id 字段毫无用处。我将有一个仅包含 Ticket_id 和 number 的表,并且这两个字段都用于形成 PRIMARY KEY ,在这种情况下,Tickets 和 TicketNumbers 之间的关系应该是 IDENTIFYING (实线)。这更多的是艺术和科学,观点会有所不同。

关于mysql - 鱼尾纹 Mysql 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46223604/

相关文章:

php - 如何选择一个字段是数组成员的数据?

php - 是否有类似 activerecord 的数据库模式迁移的独立替代方案?

MYSQL 从表中的列中删除单词

Mysql 月份数字到月份名称的转换

MySQL执行注释中的语句

mysql - 工作台 : Failed to Connect to MySQL at

c# - 如何为在线资源生成唯一的文本 ID

MySQL选择数据之间的范围

MySQL 正向工程师 - SQL 给出错误 121

mysql - 在 select 语句 'AS' 中使用包含多个用空格分隔的单词的字符串会产生任何缺点吗?