数据库方案设计社交网站

问题描述 投票:1回答:5

[您好,我打算设计一个社交网站asp.net mvc。我被数据库设计所困扰。任何人都可以为我提供该资源。

database-design social-networking
5个回答
5
投票

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

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

第二,找出其中每个要存储的what信息(用户名,密码,全名,地址等)。

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

  1. 表中的每一列都应该是键的属性。
  2. 表中的每一列都应为entire键的属性。
  3. 表中的每一列都应为键的[[only属性。
数据库设计应该

总是

以第三种正常形式完成,恢复为其他形式if存在性能问题并且您了解了恢复的后果。通常,通过正确应用计算字段或触发器,通常可以安全(有效)地进行此操作。作为示例,您应该

不是

要做的一件事是尝试在users表中建立关系模型。该表中的一行将用户名作为键,并且关系取决于two用户名,因此将违反规则3。

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

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

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

    其他任何事情,您可能都应该使用

    大脑来找出。真的并不难。 Facebook并未因创建良好的数据库架构而流行。


  • 0
    投票
    将有两个用于用户模块的主表,即

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

    0
    投票
    我建议您尝试使用图形数据库。由于涉及实体之间的大量关系时的性能,它可以说是社交媒体的最佳解决方案之一。

    尝试阅读本文,查看图形数据库是否适合您:https://www.guidearea.com/social-media-database-design-using-graph-database-neo4j/

    © www.soinside.com 2019 - 2024. All rights reserved.