2010-01-25 2 views
1

Мое сомнение в том, как лечить следующее:MySQL Основы относительно отношений

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

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

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

  • A company_id и user_id поле
  • Просто company_id поле
  • Просто user_id поле причиной таблицы пользователь имеет company_id? ??
  • Что-то еще ...

ТКЗ Roberto

+0

Нам нужна более точная информация. Например, может ли клиент быть клиентом более чем одного пользователя? Может ли клиент быть клиентом более чем одной компании? Может ли тот же пользователь работать более чем для одной компании? И если да, у них есть два отдельных списка клиентов или один и тот же список клиентов в обеих компаниях? –

ответ

0

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

SELECT company_id,user_id FROM client; 
+0

Но каков правильный способ построения таблицы? Какой внешний индекс я положил в таблицу клиентов? – Roberto

1

Таблицы соотношения:
Client (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;

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

И наконец: если одной информацией о клиенте могут управлять пользователи mutli, вы не должны связывать/связывать эти два объекта вместе.

ОТВЕТ: ваш английский ужасен!

+0

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

+0

чувак, задающий вопрос, не отвечающий на него !! в то время как я отвечаю, что я больше забочусь о ответе на вопрос как можно скорее. но если вопрос плохо написан, то это заставит многих людей игнорировать его или стесняться ответить на него. в любом случае спасибо за исправление моего синтаксиса второго языка :) –

+0

tkz для информации ... мой английский ужасен, но это лучше, чем ничего ... вы меня поняли ... что является объективным;) tkz снова и tkz Tom! – Roberto

Смежные вопросы