Предположим, что у меня есть эти таблицы:
Каждая компания и каждый клиент могут иметь несколько мест.
Каков наилучший и быстрый способ создания вышеуказанных отношений, предполагая, что в моем приложении мне нужно будет искать все компании, которые связаны, по крайней мере, с одним местоположением клиентов с id = N и наоборот?
Не удалось найти более общий заголовок, не стесняйтесь изменить его на какой-то общий.
По моему мнению, вы можете создать таблицу, как показано ниже:
Добавьте индексы ниже столбцов, чтобы быстрее получать данные
id
для всех таблиц будет первичным ключом, поэтому у нас есть индекс.
Вы можете построить таблицу соединений для компании и клиентов.
Companies
id (pk)
name
phone
email
Companies_location
id (pk)
company_id (reference to Companies table id) (fk)
location_id (reference to Location Table id) (fk)
Customers
id (pk)
name
phone
email
Customers_location
id (pk)
customer_id (reference to Customers table id) (fk)
location_id (reference to Location Table id) (fk)
Location
id (pk)
state
city
Заявление SQL:
You can use Union because they have same field.