2010-01-25 79 views
1

我的疑問是關於如何處理後續的事情:MySQL基礎約關係

我有其中一個用戶屬於一個公司的系統,並且這個用戶有他們的客戶。

如何正確獲取所有公司客戶的列表以及關注用戶名?

在客戶端表,其中我有跟這個有關係的一個字段:

  • 一個COMPANY_ID和USER_ID領域
  • 只是COMPANY_ID場
  • 只是USER_ID領域的事業user表中有COMPANY_ID? ??
  • 別的東西...

TKZ 羅伯託

+0

我們需要更精確的信息。例如,客戶可以成爲多個用戶的客戶嗎?客戶可以成爲多家公司的客戶嗎?同一個用戶可以爲多個公司工作嗎?如果是這樣,他們是否有兩個單獨的客戶名單,或兩家公司的客戶名單? – 2010-01-25 12:48:13

回答

0

你可以使用select語句

SELECT company_id,user_id FROM client; 
+0

但是,構建表的正確方法是什麼?我在客戶端表中放置哪些外部索引? – Roberto 2010-01-25 02:31:48

1

表關係:
客戶端(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

你的指責應該更加謹慎,因爲你的英語並不好。 「如果只有一家公司」,「屬於一個用戶」,「如果你是多家公司」,...... – 2010-01-25 07:34:23

+0

老兄,問一個問題,而不是回答它!同時回答我更關心讓問題儘快回答。但如果這個問題寫得不好,那麼會讓很多人忽略它,或者猶豫回答。無論如何謝謝糾正我的第二語言的語法:) – 2010-01-25 08:20:03

+0

tkz的信息...我的英語是可怕的,但它比沒有好...你瞭解我...這是目標;)tkz再次和tkz湯姆! – Roberto 2010-01-25 15:37:44