我正在使用 MySQL Workbench 为客户构建数据库。
在这种情况下,一张票可以有很多号码,但一个池可以有很多票。
我不确定我的设置是否正确。
我可以看到将“Tickets”表链接到“TicketNumber”表的乌鸦脚具有一对多关系。这是否意味着一张票有很多票号?
我在“TicketNumbers”表中创建了一个 FK,该表使用“ticket_id”列作为引用链接到 Tickets 表。
对于池,我在“Pools”表中创建了一个 FK,该表使用“pool_id”作为引用链接到“Tickets”表。鱼尾纹似乎表明一张票可以有多个池,但事实并非如此?
我是否正确完成了此操作,还是应该通过在相反的表中创建 FK 来反转关系?
最佳答案
我讨厌回答有关图形的问题:-)
带有实线的鱼尾纹表示从单线到多条线(三角形或鱼尾纹)的识别关系。这意味着链接到的字段是接收表的主键的一部分。
虚线表示非识别关系。意味着链接字段不是主键的一部分。
在您的情况下,关系应该是“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/