2015-10-04 71 views
-5

我剛剛建立了一個網站,其中有一個訂單和每個訂單的聊天信件。我有一個訂單表,每個訂單都指定一個用戶。數據庫關係我爲什麼要使用它們?

如果我添加一個關係表,它是如何影響它?我仍然會使用JOIN LEFT方法查詢數據庫嗎?

我爲什麼要用它?

我想確認我的ORDERS表有user_id字段,而我的用戶表沒有order_id字段,那是否正確的想法? 我還沒有對每個訂單上的聊天功能做同樣的事情,因爲我仍然試圖瞭解我需要在該表中使用哪些字段來正確查詢php。

+0

使用關係可以使數據重複最小化,因爲您關聯的表不需要兩次寫入字段。 – 2015-10-04 12:50:26

+1

我無法弄清楚你的問題是什麼。當你想出來的時候,問另一個問題,幷包括樣本數據和期望的結果。你似乎有一些特定的內容,但我不確定它是什麼。 –

回答

1

你說的是兩個不同的概念在這裏:

  1. 數據輸入:關係是用於確保數據完整性的方法之一。它限制可以將數據插入到數據庫中。

  2. 數據檢索:您提到的LEFT JOIN是用於從數據庫中檢索數據的方法。它有點過濾數據,所以你得到你想要的而不是返回整個表。

您不必使用這兩者中的任何一個。他們在那裏幫助你,但他們不是必需的,你可以通過其他方式獲得類似的結果。更重要的是,它們完全無關。如果您使用關係,則不需要使用LEFT JOIN或任何其他聯接。如果你不使用關係,你仍然可以使用連接並獲得相同的結果。

如果您不使用關係,您的應用程序可以決定如何將數據輸入到數據庫。如果你不使用連接,你可以使用子查詢作爲例子。走哪條路真的很大程度上取決於您的要求,但對於大多數情況下可能,使用關係和連接是一條路。

例如下面的兩個查詢是等價的。第一個使用連接,第二個不使用:

SELECT users.name, orders.id 
FROM users 
INNER JOIN orders ON users.id = orders.user_id 

SELECT users.name, orders.id 
FROM users, orders 
WHERE users.id = orders.user_id 
+0

如果我使用第二種方法在表格中需要什麼,例如我寫字段,但是我也必須設置關係,因爲關係部分是我最困惑的部分。謝謝 – Elevant

+0

什麼是「第二種方法」? –

+0

沒有連接的查詢 – Elevant

相關問題