Социальные сети и филиалы
Я нахожусь в процессе планирования базы данных для проекта социальной сети и наткнулся на этот URL, который является (грубым) обратным инженерным предположением схемы Facebook:
http://www.flickr.com/photos/ikhnaton2/533233247/
Что меня интересует, так это понятие «присоединения», и я пытаюсь полностью понять, как они работают, технически говоря. Где я несколько смущен, так это столбец NetworkID в таблицах FacebookGroups "," FacebookEvent "и" Affiliations "(NID в Affiliations). Как связаны эти сетевые присоединения?
В моем собственном проекте у меня есть простая таблица профиля:
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 будет оценена в вашем ответе.
Заранее спасибо...