规范化和高效的SQL数据库设计

时间:2015-12-13 16:25:50

标签: mysql database postgresql database-design relational-database

我有多个用户/客户(假设有N个用户) 和M篇文章。

通过这些M篇文章将向每个用户展示。用户可以将文章标记为"不感兴趣"。如果他这样做,我们将不会向他/她展示这篇文章。但是这篇文章可能对其他用户没有标记为"不感兴趣"。正确?

现在我在这里遇到问题。我不想为不同的用户创建重复的文章对象。相反,应该有一些方式/标志(not_interested)与每个用户相关联,以便我们可以根据它进行过滤。但我不确定如何在SQL数据库中这样做。

任何建议都将不胜感激。

表:

Article:
      title, description, etc..

User:
    username, email, phone, etc

我应该创建一个中间表,它将具有文章和用户的foriegn键以及not_interested的标志?有没有更好的方法?

1 个答案:

答案 0 :(得分:1)

你需要一个多对多的表,比如

user_article:
  article_id, user_id, not_interested