多人博客项目(数据库设计+Django项目创建)

1、分析:

  多人使用的博客系统,采用BS 架构实现,为了提供显示页面,所以用浏览器,内部通讯的话,就不需要,CS就可以

  博客系统,需要用户福安里,博文管理

  用户管理:注册,增删查改用户

  博文管理:增删改查博文

  需要数据库:本次使用MySQL5.5, InnoDB 引擎

  需要支持多用户登录,各自可以管理自己的博文(增删改查),管理是不公开的,但是博文是不需要登录就可以公开流浪的

  先实现最小的核心需求代码

2、数据库设计

  ①、创建数据库:blog

  ②、创建用户表,文章表

    创建用户表user:

      

      

    创建文章post

      

      

      一个用户 会写多篇博客,所以是一个一对多的情况,为了能在 post表中找到相应用户的文章,所以post使用author 类型为int,对应user表中的主键id,(一对多,外键放在多的一侧)

      用户名对应的id 是唯一的,所以可以找到 post对应的author

      但是,正常业务,查是通过title查,所以没必要吧内容一下都显示,所以再次分离,将content 分开

    创建内容表 content:

      

      

      一个 post.title ===》一个content 所以,content.id === post.id  一一对应

      如果post删除一行,content 也要删除,最好content加一个外键,保证数据一致性

    思考:

      content 多大合适,图片如何处理:

      1、字段类型

      博文一般很长,不可能只有几百个字符,需要打文本字段、MySQL中,选择text类型而不是char或者varchar类型

      2、大小

      text 类型是65535个字符,如果不够用,有longtext 2^32-1个字符

         3、图片

      博文就像HTML 一样,图片是通过路径信息将图片嵌入在内容中。所以保存的内容还是字符串

      图片来源有两种,

        外链:通过URL 连接访问,本站不用存储该图片,但容易引起倒链问题

        本站存储:需要提供博文在线文本编辑器,提供图片上传到网站存储,并生成图片URL,这个URL嵌入booked正文,不会有倒链,但是要解决众多图片存储问题,水印问题,临时图片清理,在线压缩等

      4、字段考虑

      content字段存储文本类型大字段,一般不喝数据频繁查询的字段放在一张表中,需要拆到另一张表

        

     注:这里的SQL脚本本次不要使用生成表,使用ORM 工具来创建,用来检查实体类构建是否正确   

      

 

 3、项目:

   项目构建:

    1、

     2、

     3、以后可以直接在这里选择环境

 

     4、

 

 

 

 

 

 

    

 

  图片来源有两种:

posted @ 2018-11-22 12:56  JerryZao  阅读(785)  评论(0编辑  收藏  举报