1

我很好奇 Google+ 圈子之类的数据库结构(mysql)可能是什么,以及它们如何跟踪用户定义的圈子。我想为一个应用程序实现类似的东西,用户可以选择与某些其他用户共享内容。

本质上,用户可以将朋友放入他定义的组中,以过滤朋友可以看到的内容。到目前为止,我有一个朋友系统的相当简单的实现——它是一个标准的规范化数据库,包括一个用户表和一个朋友表。

任何人都可以阐明如何为“组”或圈子设置数据库结构吗?我考虑在 Friends 表中添加一个额外的字段,这将是组表的外键。但是,我可以看到这很快就会变得笨拙,特别是如果用户可以定义组并将朋友放置在任意数量的组中。

是否有一个快速的实现,或者不需要谷歌服务器的计算能力?

4

1 回答 1

0

我能想到的最佳方法如下:

用户表
朋友表(2 个用户 ID,可能一个字段用于“已接受”或“尚未”) - 我推荐两种方式的友谊
组表(组 ID、所有者(或不)、描述)
group_participants 表(组 ID、用户 ID 和一个字段)表示“已接受”或“尚未”)

当你想分配一些东西时,你可以有各种选项,包括“组”,或者你可以将组列表附加到用户列表中,并带有某种字母,例如:

  • 约翰
  • 凯特
  • 实验室(克)
  • 朋友(克)

此外,可以通过两种方式管理将内容分配给组:
1)实际分配权限给 group_id(这使得分配内容后查看者组可编辑)
2)只需将权限分配给组中的每个用户苍蝇(这使得任务忍受将某人踢出小组)

如果您选择选项 1,那么您可以通过“手工挑选”人员来分配权限,就像隐藏的自定义组一样。

只是我的2c

于 2012-12-01T07:49:25.297 回答