热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

以博客系统为例的数据库分析与设计之分析篇

系统分析作为一个微型博客系统,不需要像微博或者csdn这样的大网站每天承受数以N万计的用户访问,也不需要展示丰富繁杂的内容,所以我们就按最简来进行数据库的设计,这样相对而言系统承载要小

系统分析

  • 作为一个微型博客系统,不需要像微博或者csdn这样的大网站每天承受数以N万计的用户访问,也不需要展示丰富繁杂的内容,所以我们就按最简来进行数据库的设计,这样相对而言系统承载要小的很多很多,数据库条目关系以及储存占用也很小,也便于基础学习者理解。
  • 服务器和数据库我们一般都会部署在linux平台上,如果本地开发练习其实并不麻烦,如果想把成果放到网上去,那么我们可以租用一部云主机,在云主机上搭建一个真实的可访问系统,这些需要大家自己去探索学习。
  • 数据库的话我的示例之中一般都会使用PgSql,可以参考前面的相关文章为应用配置稳定数据库
    硬件环境并不作为此次讨论的重点,所以不多说,当然我知道的也有限,接下来我们着重讨论数据库的分析部分

数据库分析

这里写图片描述
此次示例中我本人既作为一个创建者也作为一个使用者,所以所有内容都是个人亲身试炼所得,不足之处愿受教于高人。因为是一次开发演练,所以我们不关心博客系统本身的市场需求,只讨论在这个系统之中数据库如何根据需求去进行设计。

  • 数据库需要存储与访问的数据对象有哪些
    • 用户为核心,所以用户对象必须要有一张数据表,字段包含包含一些常用信息,比如用户ID、昵称、登录名、密码,为了不让一张表的数据过于繁杂和便于查询,我们又设计出了一张用户信息表,保存一些不常用的用户信息如生日、爱好、教育信息等;
    • 内容为主体,所以文章对象要有一张数据表,字段包含用户ID、文章分类、文章标题、关键字等;
    • 文章分类表,字段类别、类别名称等’,
    • 好友表,用来存储互加好友的两个人之间的关系,字段包含用户id和好友id以及自增的主键等;
    • 用户关注表,字段包含用户id以及被关注人id和自增的主键;
    • 私信表, 字段包含自增私信ID,发信者ID,收信者ID, 私信内容;
    • 系统通知表,字段包含系统通知ID,接受者ID,通知内容,自增通知内容id;
    • 评论表,字段包含评论自增ID号,收到评论的用户ID,评论内容的ID,评论内容,评论者ID,评论时间等;
    • 评论回复表,字段包含回复自增ID号,收到回复的用户ID,回复评论的ID,回复内容,回复者ID,回复时间,回复等级等;
    • 留言表,字段包含留言自增ID号,收到留言的用户ID,留言内容的ID,留言内容,留言者ID,留言时间等;
    • 留言回复表,字段包含回复自增ID号,收到回复的用户ID,回复留言的ID,回复内容,回复者ID,回复时间,回复等级等;
  • 数据对象之间的关系
    • 与用户表关联的表:所有其他的表都与用户有联系,要么外键约束,要么有字段联系
    • 文章表与文章分列表和文章评论表存在外键约束
    • 评论表与回复表以及留言表和留言回复表都有外键约束
      这里写图片描述
      关于数据的表结构关系我会在下一篇的逻辑设计中细细去讲解

推荐阅读
  • PHP自学必备:从零开始的准备工作与工具选择 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 在Java分层设计模式中,典型的三层架构(3-tier application)将业务应用细分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这种分层结构不仅有助于提高代码的可维护性和可扩展性,还能有效分离关注点,使各层职责更加明确。通过合理的设计和实现,三层架构能够显著提升系统的整体性能和稳定性。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 初探性能优化:入门指南与实践技巧
    在编程领域,常有“尚未精通编码便急于优化”的声音。为了从性能优化的角度提升代码质量,本文将带领读者初步探索性能优化的基本概念与实践技巧。即使程序看似运行良好,数据处理效率仍有待提高,通过系统学习性能优化,能够帮助开发者编写更加高效、稳定的代码。文章不仅介绍了性能优化的基础知识,还提供了实用的调优方法和工具,帮助读者在实际项目中应用这些技术。 ... [详细]
  • 使用SQL命令创建数据库及其语句解析
    使用 `CREATE DATABASE` 命令可以创建一个新的数据库,并指定其名称。该 SQL 语句用于初始化数据库结构,执行后将生成一个新的数据库实例,用于存储相关的数据对象和表。在本例中,通过执行 `CREATE DATABASE 课程管理1`,系统将创建一个名为“课程管理1”的数据库,以便后续的数据管理和操作。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • SSAS入门指南:基础知识与核心概念解析
    ### SSAS入门指南:基础知识与核心概念解析Analysis Services 是一种专为决策支持和商业智能(BI)解决方案设计的数据引擎。该引擎能够为报告和客户端应用提供高效的分析数据,并支持在多维数据模型中构建高性能的分析应用。通过其强大的数据处理能力和灵活的数据建模功能,Analysis Services 成为了现代 BI 系统的重要组成部分。 ... [详细]
  • 深入解析数据库中的存储过程与触发器技术
    本文深入探讨了数据库中的存储过程与触发器技术。存储过程是一组预编译的SQL语句,经过优化后存储在数据库服务器中,以提高执行效率。在大型数据库系统中,通过调用存储过程的名字,用户可以快速执行复杂的操作,从而提升系统的性能和响应速度。此外,触发器作为一种特殊的存储过程,能够在特定事件发生时自动执行,进一步增强了数据库的自动化管理和数据完整性。 ... [详细]
  • 如何使用mysql_nd:Python连接MySQL数据库的优雅指南
    无论是进行机器学习、Web开发还是爬虫项目,数据库操作都是必不可少的一环。本文将详细介绍如何使用Python通过 `mysql_nd` 库与 MySQL 数据库进行高效连接和数据交互。内容涵盖以下几个方面: ... [详细]
  • 在深入掌握Spring框架的事务管理之前,了解其背后的数据库事务基础至关重要。Spring的事务管理功能虽然强大且灵活,但其核心依赖于数据库自身的事务处理机制。因此,熟悉数据库事务的基本概念和特性是必不可少的。这包括事务的ACID属性、隔离级别以及常见的事务管理策略等。通过这些基础知识的学习,可以更好地理解和应用Spring中的事务管理配置。 ... [详细]
  • 本文探讨了如何在C#应用程序中通过选择ComboBox项从MySQL数据库中检索数据值。具体介绍了在事件处理方法 `comboBox2_SelectedIndexChanged` 中可能出现的常见错误,并提供了详细的解决方案和优化建议,以确保数据能够正确且高效地从数据库中读取并显示在界面上。此外,还讨论了连接字符串的配置、SQL查询语句的编写以及异常处理的最佳实践,帮助开发者避免常见的陷阱并提高代码的健壮性。 ... [详细]
  • SAP 实用技巧:如何高效终止运行中的进程
    在ERP系统中,通过事务代码SM66和SM51可以查看服务器上的进程执行情况。在某些特殊情况下,可能需要终止占用资源的进程。本文详细介绍了几种高效终止进程的方法,并提供了操作步骤和注意事项,帮助用户在遇到问题时快速解决。 ... [详细]
  • 如何高效地安装并配置 PostgreSQL 数据库系统?本文将详细介绍从下载到安装、配置环境变量、初始化数据库、以及优化性能的全过程,帮助读者快速掌握 PostgreSQL 的核心操作与最佳实践。文章还涵盖了常见问题的解决方案,确保用户在部署过程中能够顺利解决遇到的各种挑战。 ... [详细]
  • 二十六、Java开发实战:PL/SQL轻松实现远程数据库连接
    通过 PL/SQL Developer 实现远程数据库连接的详细步骤如下:首先启动 PL/SQL Developer 软件,然后在登录界面中准确输入用户名和密码;接着在数据库连接配置中,按照 IP:Port/SID 的格式填写目标数据库的地址信息。此外,确保网络环境畅通无阻,并检查防火墙设置以避免连接失败。 ... [详细]
author-avatar
斯高一耐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有