Связывание таблиц в MySql - PullRequest
0 голосов
/ 09 мая 2009

У меня есть одна таблица, которая включает информацию о компании (то есть имя, адрес, описание бизнеса ...) и другую таблицу, которая содержит информацию о пользователе (то есть имя, фамилия, адрес электронной почты и пароль). Как связать таблицу компании с таблицей пользователей, чтобы при входе пользователя компания правильно ассоциировалась с пользователем? Будет ли в таблице компаний столбец идентификаторов пользователей?

Ответы [ 3 ]

4 голосов
/ 09 мая 2009

Если предположить, что несколько пользователей могут принадлежать к одной компании, но только одна компания может быть связана с пользователем, то лучше всего использовать идентификатор компании в таблице пользователей.

Чтобы объединить две таблицы, где вы ожидаете совпадения во всех случаях, используйте INNER JOIN:

SELECT u.*, c.companyname FROM users u 
INNER JOIN companies c ON u.companyid = c.companyid

Очевидно, что приведенный выше запрос является имитацией и требует адаптации в соответствии с вашей схемой / требованиями.

2 голосов
/ 09 мая 2009

Вы ищете присоединений .

Компании будут иметь отношения один-ко-многим с пользователями, поэтому вам нужно создать столбец в таблице пользователей с именем, например, company_id, а затем запросить его следующим образом, чтобы получить пользователей и их компанию:

SELECT * FROM users INNER JOIN companies ON users.company_id = companies.id
0 голосов
/ 09 мая 2009

Нет, у вас, вероятно, будет отношение один ко многим. Таким образом, одна компания содержит много сотрудников. Но один сотрудник принадлежит только одной компании (для простоты).

Для этого требуется внешний ключ в таблице пользователей, указывающий на идентификатор компании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...