gpt4 book ai didi

mysql - 用于存储友谊详细信息的数据库架构

转载 作者:行者123 更新时间:2023-11-29 08:40:55 26 4
gpt4 key购买 nike

我正在创建一个应用程序,用户依次使用她的 twitter/facebook/foursquare 帐户登录,并获取她所关注的人的所有 ID 和其他详细信息(或将他们作为 friend 添加到她的列表中)

我提到了这些问题:

但唯一的问题是,上述设计侧重于“友谊”模型,而我希望系统基于“关注”模型。
在“好友”模型中,两个用户互相添加/确认对方,而在“关注”模型中,一个用户可以关注另一个用户,而无需确认。

我可以继续进行一种设计,其中一个表存储我的应用程序的所有用户,另一个表存储他们关注的所有人员以及其他信息,但由于我不太擅长数据库设计,所以我很担心关于当我最终复制很多行时的情况。
例如:

  • 如果 Kathy 在某个网络上关注 Ana,Steve 在某个其他网络上关注 Ana,我最终会得到 Ana 的两行,描述与这两个用户的关系。这样可以吗?
  • 如果 Ana 和 Steve 在不同的网络上互相关注怎么办?这种关系有两行可以避免吗?
  • 在某个网络上,史蒂夫关注凯西,这将再次为他们的关系占据一行。这样可以吗?
  • Ana 很可能是 Kathy 在多个社交网络(twitter+facebook)上的 friend ,我必须有两行来存储同一个人 Ana 在这两个网络上的不同信息。这样可以吗?

在数据库设计方面,我不是专业人士,通常是由数据库人员设计的,但这次是我的个人应用程序,所以我不太知道什么是好的,什么是不好的。

随着不同的用户最终添加多个社交网络帐户,该系统可能会变得相当大。我将在一开始使用 LAMP,并且基本上担心糟糕的数据库设计可能会增加复杂性。

非常欢迎任何有关架构的建议或想法。
如果需要更多信息,请发表评论。

谢谢!

最佳答案

如果您希望数据库标准化,则每个关系都需要单独的一行。如果您存储了所有关系,假设将关注者 ID 放入名为 followerID 的字段中,那么如果基于一个关注者删除该记录,则所有关注者都会被删除。所以,是的,多条记录是个好主意。

您还可以做的是使用被关注者和追随者的主键以及您需要的任何其他相关信息来设置一个关系表,例如 Follow_Relationships。这样,您就可以对两个表执行联接。

希望这会有所帮助!

关于mysql - 用于存储友谊详细信息的数据库架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13820714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com