我正在建立一个社交网站,我想知道如何创建群组,活动和朋友列表。我想为他的朋友提供用户隐私,如下所示:
1。用户可以选择可以查看其个人信息或不能查看其个人信息的朋友。 2.用户可以管理谁可以看到他的活动和群组,谁可以看不到。
我设计了一个表格结构,我在下面粘贴它:
是否存在任何其他有效的结构,可以最大限度地减少数据库命中,并且不会使数据库密集。
答案 0 :(得分:1)
如果您要设计数据库表,可能需要阅读有关规范化的内容: http://en.wikipedia.org/wiki/Database_normalization
以逗号分隔的存储ID使得更新这些记录和防止重复变得困难。我建议将allow和deny列拆分为单独的相关表。这不会使数据库更加密集,因为您仍然只需要一个查询,这只是意味着您可能必须使用连接进行查询。
答案 1 :(得分:0)
我建议使用两个(或三个)表,分隔用户+组和权限
用户/组表可以包含特定(和隔离)给用户/组的信息(对于用户来说是#1和2),然后您可以为“类型”或“类别”添加一个字段,表明它是否是用户或组。如果您为用户和组存储的信息不同,则可以为每个信息分别设置表。
权限表可以包含任何权限,包括列表中的#4-9(我实际上并不知道10/11的上下文。)该表也可用于管理组成员身份。以下是如何构建权限表的示例:
一些示例条目:
//Same as listing 1338 in user 1337's Allow_Friends Field
1002, 'user', '1337', '1338', 'Allow_Friends', 'True'
//Lists 1337 as a member in group # 43
1003, 'group', '43', '1337', 'Member', 'True'
这些只是帮助您入门的一些示例。如果这有用,或者如果您需要我澄清任何事情,请告诉我。)