数据库架构设计社交网站

时间:2010-03-22 02:41:12

标签: database-design social-networking

您好我计划设计一个社交网站(如orkut)asp.net mvc。我陷入了数据库设计。任何人都为我提供了资源。

4 个答案:

答案 0 :(得分:5)

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

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

其次,要弄清楚每个要存储的信息(用户名,密码,全名,地址......)。

然后按照第三范式设计数据库表。

  1. 表格中的每一列都应该是该键的属性。
  2. 表格中的每一列都应该是整个键的属性。
  3. 表格中的每一列都应该是键的属性。
  4. 数据库设计应始终以第三范式完成,如果存在性能问题 您将理解其后果回归。通常可以通过正确应用计算字段或触发器来安全地(并且有效地)执行此操作。

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

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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

  • 用户表
    存储用户的登录/密码/访问信息
  • 用户信息表
    存储用户可能输入的任何其他数据(全名,生日等)
  • 关系表
    存储用户A和用户B之间的关系
  • 邮政表
    根据您的用户将要发布的媒体类型,这会显示已发布的所有消息的列表,并附上用户ID

这是它的基础,这种布局可能足以模仿Twitter(这是一个非常简单的网站)。

你还应该使用大脑来解决问题。这真的不是那么难。 Facebook并没有因为创建一个好的数据库架构而受欢迎。

答案 3 :(得分:0)

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

  1. tblUser(userId(P key),其他详细信息列)
  2. tblContacts(UserId(F key from tbluser),ContactId(F key from tbluser)useridcontactid都是主键,即。复合键)