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