首页 > 解决方案 > MySQL 将 2 个不同的表连接到第 3 个表

问题描述

客户或提供者(clients_table、providers_table)可以有很多电话号码,因此,我创建了第三个表(phone_book)来存储电话号码(固定电话、手机),但我被困在如何创建/管理这 3 个之间的关系表。处理这种情况的最佳方法是什么?

谢谢

标签: mysqldatabase

解决方案


我不知道客户表和提供者表有多相似/不同,或者它们是否更适合作为一个表。我将解释处理您的要求的一般方法。考虑以下表定义:

clients_table (id, name, address)
phone_book (id, number)
clients_phone (client_id, phone_id)
    (client_id -> clients_table, phone_id -> phone_book)

也就是说,创建一个名为的新联结clients_phone,用于跟踪客户端与其电话之间的关系。请注意,通过这种设计,我们不必在任何地方重复电话信息。它只出现一次,在phone_book表中。

考虑到还有一个提供程序表,上述设计可能需要稍作更改。


推荐阅读