我正在为一个社交网络项目规划一个数据库,无意中发现了这个url,这是一种(粗糙的)反向工程对facebook模式的猜测:
http://www.flickr.com/photos/ikhnaton2/533233247/
我感兴趣的是“从属关系”的概念,从技术上讲,我正在努力充分理解它们是如何工作的。我有些困惑的地方是NetworkID列在FacebookGroups","FacebookEvent“和”附属“表(NID在从属关系中)。这些网络关联是如何相互关联的?
在我自己的项目中,我有一个简单的概要表:
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模式。
提前谢谢..。
发布于 2010-05-04 18:10:01
首先,它是一个对象模式,而不是数据库模式。第二,它并没有显示出一切,远远没有完成。看看学校的班级(不是表)注意到的关系,高中一、二和学校的名单。您是否看到配置文件类中的属性来保存这些“外键”。
你的问题不能被准确地回答
其次,为什么要关心facebook是如何做到的呢?第三种正常形态不是一种黑色的艺术吗?没有失去和消失的圣普永远的知识你不知道。
你想要一个多到多的关系之间的从属关系和个人资料?还是不?您是否试图发现从属关系之间的相互依赖关系?
为什么不直接问我们一些关于如何设计你想做的事情的具体问题呢?
编辑
一个配置文件可以有许多附属机构。一个附属机构可以有很多个人资料。
这是一段多到多的关系。
在物理数据库中,您需要一个许多映射表。
最简单的是,它包含来自表和列的PK,构成了表的PK。
现在只需将列添加到映射表中即可。
Start_date =>日期配置文件添加了该从属关系
End_Date =>本质上是一个逻辑删除
关于这段关系你还想知道些什么。
想想这些对象1.视频2.出租3.商店
有很多到很多,可以说是一种租赁。
VideoID,RenterID,StoreID,
你还想知道什么是“出租”
Date
(比如说房租3,免费,这是第四种)
https://stackoverflow.com/questions/2767034
复制相似问题