MySQL Basic об отношениях - PullRequest
       18

MySQL Basic об отношениях

1 голос
/ 25 января 2010

Я сомневаюсь, как относиться к следующему:

У меня есть система, в которой пользователь принадлежит компании, и у этого пользователя есть клиенты.

Как правильно получить список всех клиентов компании и следующее имя пользователя ??

В клиентской таблице, где у меня есть поле с одним из этих отношений:

  • Поле company_id и user_id
  • Только поле company_id
  • Просто поле user_id, потому что у таблицы пользователя есть company_id ???
  • Что-то еще ...

ТКЗ Roberto

Ответы [ 2 ]

1 голос
/ 25 января 2010

Таблицы отношений:
Клиент (FK_companyId, FK_userId). «используйте FK_companyId, только если у вас несколько компаний»
Пользователь (FK_companyId).
компания (без внешних ключей для клиента или пользователя).

если в системе присутствует ТОЛЬКО одна компания, вам не нужно включать ее в отношение:

SELECT clientInfo FROM client where userId=userSessionId;

если у вас есть несколько компаний, то:
SELECT client.clientInfo,client.companyId,company.companyInfo FROM client left join company on (client.companyId = company.Id) where userId=userSessionId;

Примечание: левое соединение используется для получения «информации о компании», если она доступна, но будут получены все клиенты пользователей, связанные с этой конкретной компанией.

Наконец: если одна клиентская информация может управляться несколькими пользователями, вы не должны связывать / связывать две сущности вместе.

Кстати: ваш английский ужасен!

0 голосов
/ 25 января 2010

Вы можете использовать оператор выбора

SELECT company_id,user_id FROM client;
...