社交网络和网络隶属关系

Posted

技术标签:

【中文标题】社交网络和网络隶属关系【英文标题】:Social Networking & Network Affiliations 【发布时间】:2010-05-04 16:19:35 【问题描述】:

我正在为一个社交网络项目规划一个数据库,并且 偶然发现了这个 url,这是对 facebook 的(粗略的)逆向工程猜测 架构:

http://www.flickr.com/photos/ikhnaton2/533233247/

我感兴趣的是“附属机构”的概念,我正在尝试 从技术上讲,完全了解它们的工作原理。我有点困惑的地方是 FacebookGroups”、“FacebookEvent”和“Affiliations”表(Affiliations 中的 NID)中的 NetworkID 列。这些网络从属关系如何相互关联?

在我自己的项目中,我有一个简单的配置文件表:

CREATE TABLE [dbo].[Profiles](
    [profileid] [int] IDENTITY(1,1) NOT NULL,
    [userid] [uniqueidentifier] NOT NULL,
    [username] [varchar](255) COLLATE Latin1_General_CI_AI NOT NULL,
    [applicationname] [varchar](255) COLLATE Latin1_General_CI_AI NOT NULL,
    [isanonymous] [bit] NULL,
    [lastactivity] [datetime] NULL,
    [lastupdated] [datetime] NULL,
 CONSTRAINT [PK__Profiles__1DB06A4F] PRIMARY KEY CLUSTERED 
(
    [profileid] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY],
 CONSTRAINT [PKProfiles] UNIQUE NONCLUSTERED 
(
    [username] ASC,
    [applicationname] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

一个个人资料可以有多个从属关系。一个附属机构可以有许多个人资料。我想以这样一种方式设计它,即从属关系之间的关系告诉我一些关于相关配置文件的信息。事实上,根据用户选择的从属关系,我想知道如何推断出尽可能多的关于那个人的事情。

我的问题是,我应该如何设计我的网络从属关系表以及如何 他们是否按照我的上述要求进行操作?粗略的 SQL 模式将不胜感激 您的回复。

提前谢谢...

【问题讨论】:

【参考方案1】:

首先,它是一个对象模式而不是数据库模式。其次,它没有显示一切,远未完成。查看 Schools 类(不是表)注意关系、高中 1 和 2 以及学校列表。您是否在 Profile 类中看到用于保存这些“外键”的属性。

您的问题无法准确回答

其次,为什么要关心 facebook 是如何做到的?第三范式不是魔法吗?没有你不知道的失落之书知识。

您希望从属关系和个人资料之间建立多对多关系吗?或不?您是否试图揭示隶属关系之间的相互依赖关系?

为什么不直接向我们询问有关如何设计您想要做的事情的具体问题?

编辑

一个个人资料可以有多个从属关系。一个附属机构可以有许多个人资料。

这是一个多对多的关系。

在物理数据库中,您需要一个多对多映射表。

最简单的情况是,它包含两个表中的 PK,而这些列形成了该表的 PK。

所以现在只需向映射表添加列。

Start_date => 个人资料添加该隶属关系的日期

End_Date => 本质上是一个逻辑删除

您还想了解有关关系的其他信息。

想想这些对象 1. 视频 2. 租客 3. 商店

可以描述为租赁的多对多对多。

VideoID、RenterID、StoreID,

关于“出租”,您还想了解什么

    日期(已签出) 返回日期 截止日期 打折(说是租三送一,这是第四次什么的)

【讨论】:

Stephanie,根据“the_drow”的上述评论,我真的只是想了解从属关系在 Facebook 数据库中的工作方式。我不是试图复制它,只是增加我对隶属关系的理解。但是,由于您更喜欢从“我将如何做”的角度来处理事情,我可以理解,我已经更新了我的问题并会感谢您的反馈(如果您认为我的问题在这一点上是可以回答的:))

以上是关于社交网络和网络隶属关系的主要内容,如果未能解决你的问题,请参考以下文章

社交网络

社交网络数据库设计 - 朋友/块关系

洛谷——P2047 社交网络

BZOJ1491 [NOI2007]社交网络 floyd

luogu P2047 社交网络

《在线社交网络》