我有兩個表。一張桌子存放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.
你想爲'course_updates'顯示什麼信息,以及你想爲'follower_updates'顯示什麼信息? – Oswald
對於課程更新,我只是在用戶添加或刪除課程時進行存儲。所以我存儲了課程編號和uID以及操作。至於追隨者的更新,我將存儲關於誰跟隨誰的信息。我發現我無法對齊我的列。我想我可以切換到不同的表結構,我有更新,user_updates和course_updates。 course_updates將存儲課程編號時間戳記和更新表的id引用,我將通過json存儲updateObject。這將導致數據庫中的數據冗餘。 – user2605381
數據冗餘會發生,因爲我需要在添加課程的用戶的課程更新中存儲數據,但如果用戶是用戶,我還必須在user_updates表中存儲相同的信息以獲取相同的信息跟隨某人。最終,一個nosql解決方案可能是最好的,但我試圖堅持SQL。我不知道如何把所有東西都放下。因爲我需要爲兩個用戶添加一個user_update,以便在查詢數據庫時能夠獲取信息。 – user2605381