2013-07-27 83 views
-1

我有兩個表。一張桌子存放course_updates,每次有人添加或放下課程時,基本上都會有一個新行被推送給它。我還有另一個表follower_updates,每當有人跟隨某人時都會有記錄推送給它。我希望能夠獲取登錄用戶的信息,但我不確定應該如何檢測信息來自哪個表,因爲我想根據表來自哪個表來顯示信息。我應該創建一個update_type的新列,還是應該有不同的方法? 我也將展示我在sql方面的想法。這不會是完美的,因爲我還沒有測試過它。這只是一個例子。我不想引入當前的查詢,因爲只有course_updates已經有三個內連接和一個外連接,所以我試圖簡化這個問題的內容。謝謝!這個查詢效率不高,還有表結構?

SELECT * FROM course_updates WHERE (establishes connection 
enter code herebetween user and courses and followers) 
UNION SELECT * FROM follower_updates WHERE followee.id = currentUser.id etc. 
+0

你想爲'course_updates'顯示什麼信息,以及你想爲'follower_updates'顯示什麼信息? – Oswald

+0

對於課程更新,我只是在用戶添加或刪除課程時進行存儲。所以我存儲了課程編號和uID以及操作。至於追隨者的更新,我將存儲關於誰跟隨誰的信息。我發現我無法對齊我的列。我想我可以切換到不同的表結構,我有更新,user_updates和course_updates。 course_updates將存儲課程編號時間戳記和更新表的id引用,我將通過json存儲updateObject。這將導致數據庫中的數據冗餘。 – user2605381

+0

數據冗餘會發生,因爲我需要在添加課程的用戶的課程更新中存儲數據,但如果用戶是用戶,我還必須在user_updates表中存儲相同的信息以獲取相同的信息跟隨某人。最終,一個nosql解決方案可能是最好的,但我試圖堅持SQL。我不知道如何把所有東西都放下。因爲我需要爲兩個用戶添加一個user_update,以便在查詢數據庫時能夠獲取信息。 – user2605381

回答

0

請勿使用UNION。改爲使用兩個單獨的查詢。

+0

我可能應該包括,我想通過時間戳命令列。我認爲這改變了事情。對? – user2605381

+0

應該包含 – Strawberry