我正在创建一个应用程序,用户依次使用她的 twitter/facebook/foursquare 帐户登录,并获取她关注的人的所有 ID 和其他详细信息(或将他们作为朋友列在她的列表中)
我已经提到了这些问题:
但唯一的一点是,上述设计侧重于“友谊”模型,而我想将系统建立在“跟随”模型的基础上。
在“友谊”模型中,两个用户相互添加/确认,而在“关注”模型中,一个用户可以关注另一个用户,无需确认。
我可以继续设计,其中一个表存储我的应用程序的所有用户,另一个存储他们关注的所有人员以及其他信息,但由于我对数据库设计不是很好,我担心这种情况当我最终复制很多行时。
例如:
- 如果 Kathy 在某个网络上关注 Ana,Steve 在其他网络上关注 Ana,我最终有两行 Ana,描述了与这两个用户的关系。这样好吗?
- 如果在不同的网络上,安娜和史蒂夫互相关注怎么办?这种关系有两行是可以避免的吗?
- 在某个网络上,史蒂夫跟随凯西,他们的关系将再次出现一排。这个可以吗?
- Ana 很可能是 Kathy 在多个社交网络 (twitter+facebook) 上的朋友,我必须有两行来为同一个人 Ana 存储这两个网络的不同信息。这样好吗?
在数据库设计方面,我不是专业人士,通常是从数据库人员那里设计的,但这次是我的个人应用程序,所以我不太清楚什么是好的,什么不是。
这个系统可能会变得相当大,因为不同的用户最终会添加一个以上的社交网络帐户。我将在开始时使用 LAMP,并且基本上担心糟糕的数据库设计可能会增加复杂性。
任何关于模式的建议或想法都非常受欢迎。
如果需要更多信息,请发表评论。
谢谢!