gpt4 book ai didi

sql - 社交网络和网络隶属关系

转载 作者:搜寻专家 更新时间:2023-10-30 20:13:19 25 4
gpt4 key购买 nike

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

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

我感兴趣的是“隶属关系”的概念,我正在努力从技术上讲,完全了解它们的工作原理。我有点困惑的地方是FacebookGroups、“FacebookEvent”和“Affiliations”表中的 NetworkID 列(Affiliations 中的 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 模式将不胜感激你的回应。

提前致谢...

最佳答案

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

您的问题无法准确回答

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

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

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

编辑

One profile can have many affiliations. And one affiliation can have many profiles.

这是一个多对多的关系。

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

最简单的情况是,它包含来自两个表的 PK,以及构成该表 PK 的那些列。

现在只需将列添加到映射表即可。

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

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

你还想知道关于关系的什么。

想想这些对象1.视频2.承租人3. 存储

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

VideoID、RenterID、StoreID,

关于“出租”你还想知道什么

  1. 日期( checkout )
  2. 返回日期
  3. 截止日期
  4. 折扣(比如租 3 送 1,这是第四次或其他)

关于sql - 社交网络和网络隶属关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2767034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com