我很好奇数据库结构(mysql)可能适用于像Google+圈子这样的内容,以及他们如何跟踪用户定义的圈子。我想为应用程序实现类似的功能,用户可以选择与某些其他用户共享内容。
基本上,用户可以将朋友放入他定义的组中,以过滤朋友可以看到的内容。截至目前,我有一个相当简单的朋友系统实现 - 它是一个标准的规范化数据库,包括用户表和朋友表。
任何人都可以了解如何为“群组”或圈子设置数据库结构吗?我想在Friends表中添加一个额外的字段,这将是一个group表的外键。但是,我可以很快看到它变得笨拙,特别是如果用户可以定义组并将朋友放在任意数量的组中。
是否可以快速实施,或者不需要Google服务器的计算能力?
答案 0 :(得分:0)
我能想到的最佳方法如下:
用户表
朋友表(2个用户ID,也许一个字段为“已接受”或“尚未”) - 我建议双向友谊
组表(group_id,所有者(或不),描述)
group_participants表(group_id,user_id,可能是“已接受”或“尚未”的一个字段)
当您想要分配某些内容时,您可以拥有各种选项,包括“群组”,或者您可以将群组列表附加到用户列表中,其中包含以下类似的字母:
此外,可以通过两种方式管理向组内容分配内容:
1)实际为group_id分配权限(这使得在分配内容后可以编辑观众组)
2)只需动态地为该组的每个用户分配权限(这使得该任务可以让某人从群组中踢出来)
如果你选择选项1,那么你可以通过“手工挑选”来分配权限,人们像隐藏的自定义组一样工作。
只是我的2c