0

我有多個用戶/客戶(假設有N個用戶) 和M條文章。規範化和高效的SQL數據庫設計

bydeult這些M條款將會顯示給每個用戶。用戶可以將文章標記爲「不感興趣」。如果他這樣做,我們不會向他/她展示這篇文章。但這篇文章可能對其他沒有標記爲「不感興趣」的用戶可見。對?

現在我在這裏遇到問題。我不想爲不同的用戶創建文章的重複對象。相反,應該有一些方法/標誌(not_interested)與每個用戶相關聯,以便我們可以根據此篩選出來。但我不知道如何在SQL數據庫中執行此操作。

任何建議,將不勝感激。

表:

Article: 
     title, description, etc.. 

User: 
    username, email, phone, etc 

我應該創建一箇中間表,這將有foriegn關鍵文章,用戶和標誌not_interested?有沒有更好的辦法?

回答

1

你需要一個多對多的表,像

user_article: 
    article_id, user_id, not_interested 
+0

耶剛剛更新了我的問題 – rocktheparty

+0

或名稱表像'user_not_interested_in_article'並跳過'not_interested'列:-) –

+0

而且使用'LEFT JOIN ... IS NULL'來查找不是不感興趣的行。 –