如何构建我的数据库以存储我的网站的用户行为(关注,收藏...)[关闭]

问题描述 投票:1回答:1

我正在建立一个包含文章的网站,这些文章在用户登录之前不会显示,我打算添加两个按钮,第一个叫做“关注这篇文章”,第二个是打算制作这篇文章作为最爱。我的问题是如何在我的数据库中构建它?

我应该只添加一个包含id_articleid_userfollowed(1 or 0)favourite (1 or 0)的表,还是有另一种解决方案可以让我节省更多的内存空间?

注意:我的网站将有很多文章将被很多用户访问。

php sql database web storage
1个回答
0
投票

建立两个独立的关系:articles_followed (id, id_article, id_user)articles_favourite (id, id_article, id_user)。这将为您提供足够的灵活性:

  • 添加特定于每个关系的新属性,
  • 分割数据库(在某些时候):将一个关系从另一个关系中移除会更容易,因为它们不相互依赖,
  • 并发更新:您可以在这两个上使用单独的锁,此外,您可以减少事务可见性问题,
  • 你不需要保留is_followedis_favourite标志:如果有一个条目,则表示该文章被遵循(一旦取消关注,只需删除该行)

想想你的域类结构 - 哪个选项对代码更方便?我打赌,如果有两个不同的关系,它会更清楚。

© www.soinside.com 2019 - 2024. All rights reserved.