Database design 社交网站数据库方案设计

Database design 社交网站数据库方案设计,database-design,social-networking,Database Design,Social Networking,您好,我计划设计一个社交网站(如orkut)asp.net mvc。我专注于数据库设计。任何人都可以为我提供该网站的资源。您可以计算出字段/查询和其他所有内容,但基本表非常简单: 用户表 存储用户的登录/密码/访问信息 用户信息表 存储用户可能输入的任何其他数据(全名、生日等) 关系表 存储用户A和用户B之间的关系 邮政表格 根据您的用户将要发布的媒体类型,这将提供所有已发布消息的列表,并附加用户ID 这是它的基础,这种布局可能足以模拟Twitter(这是一个非常简单的网站) 任何额外的事情

您好,我计划设计一个社交网站(如orkut)asp.net mvc。我专注于数据库设计。任何人都可以为我提供该网站的资源。

您可以计算出字段/查询和其他所有内容,但基本表非常简单:

  • 用户表
    存储用户的登录/密码/访问信息
  • 用户信息表
    存储用户可能输入的任何其他数据(全名、生日等)
  • 关系表
    存储用户A和用户B之间的关系
  • 邮政表格
    根据您的用户将要发布的媒体类型,这将提供所有已发布消息的列表,并附加用户ID
这是它的基础,这种布局可能足以模拟Twitter(这是一个非常简单的网站)


任何额外的事情你都应该用你的大脑去弄清楚。其实没那么难。Facebook并没有因为创建一个好的数据库模式而变得流行。

您可以计算出字段/查询和其他所有内容,但基本表非常简单:

  • 用户表
    存储用户的登录/密码/访问信息
  • 用户信息表
    存储用户可能输入的任何其他数据(全名、生日等)
  • 关系表
    存储用户A和用户B之间的关系
  • 邮政表格
    根据您的用户将要发布的媒体类型,这将提供所有已发布消息的列表,并附加用户ID
这是它的基础,这种布局可能足以模拟Twitter(这是一个非常简单的网站)


任何额外的事情你都应该用你的大脑去弄清楚。其实没那么难。Facebook并没有因为创建一个好的数据库模式而变得流行。

这些是初始数据库设计应该遵循的步骤

首先,列出要存储的所有“对象”,如用户、帖子、关系等

第二,找出每一个,你想要存储的信息(用户名、密码、全名、地址等等)

然后按照第三种标准形式设计数据库表

  • 表中的每一列都应该是键的属性
  • 表中的每一列都应该是整个键的属性
  • 表中的每一列都应该是键的属性
  • 数据库设计应始终以第三种正常形式进行,如果存在性能问题,并且您了解恢复的后果,则应恢复到其他形式。通过正确应用计算字段或触发器,通常可以安全(高效)地完成这项工作


    例如,您不应该做的一件事是尝试在users表中建立关系模型。该表中的一行将用户名作为键,关系依赖于两个用户名,因此这将违反规则3。

    这些是初始数据库设计应遵循的步骤

    首先,列出要存储的所有“对象”,如用户、帖子、关系等

    第二,找出每一个,你想要存储的信息(用户名、密码、全名、地址等等)

    然后按照第三种标准形式设计数据库表

  • 表中的每一列都应该是键的属性
  • 表中的每一列都应该是整个键的属性
  • 表中的每一列都应该是键的属性
  • 数据库设计应始终以第三种正常形式进行,如果存在性能问题,并且您了解恢复的后果,则应恢复到其他形式。通过正确应用计算字段或触发器,通常可以安全(高效)地完成这项工作


    例如,您不应该做的一件事是尝试在users表中建立关系模型。该表中的一行将用户名作为键,关系取决于两个用户名,因此这将违反规则3。

    Barry Williams拥有一个免费数据模型库,他将其作为各种应用程序的起点。他的投资组合包括一个社交网站的建议模型;该页面还包括一些支持信息的链接

    Barry Williams拥有一个免费数据模型库,他将其作为各种应用程序的起点。他的投资组合包括一个社交网站的建议模型;该页面还包括一些支持信息的链接

    用户模块将有两个主表,即

  • tblUser(userId(P键)
    ,其他详细信息列)
  • tblContacts(UserId(tbluser的F键)、ContactId(tbluser的F键)
    UserId
    ContactId
    都将是主键,即复合键)

  • 用户模块将有两个主表,即

  • tblUser(userId(P键)
    ,其他详细信息列)
  • tblContacts(UserId(tbluser的F键)、ContactId(tbluser的F键)
    UserId
    ContactId
    都将是主键,即复合键)

  • 为你设计数据库模式?!?很宽,你能把它缩小一些吗?社交网站是/可能是令人讨厌的。是的,没有人会想为您构建它,但我们可以在正确的方向上帮助您。本质上是重复的:为您设计DB模式?!?很宽,你能把它缩小一些吗?社交网站是/可能是令人讨厌的。是的,没有人愿意为您构建它,但我们可以在正确的方向上帮助您。本质上是重复的:这是用于关系数据库的。还有其他数据库模型(NoSQL),它们需要不同的方法,这是关系数据库的方法。还有其他数据库模型(NoSQL),它们需要不同的