开发环境:

  • 服务器系统:CentOS-6.x
  • web服务器:Apache-2.2.x
  • php版本:PHP-5.3.x
  • 开发工具:sublime text 3 ,谷歌浏览器
  • 数据库查询工具:phpmyadmin
  • 协作工具:乌龟SVN

约定:

  • 数据表前缀:blog_
  • 数据表主键名:表名_id,自增,不为空
  • 时间字段类型统一为timestamp,每个表必须含有创建时间(默认当前时间),更新时间(默认由mysql更新)
  • 字符集采用UTF-8

项目定义:多用户博客系统--运行在SAE上,基于php的最新3.0CodeIgniter框架,前台界面采用最新国内开源amazeui的移动端UI框架,后台管理端采用google出的angularjs的JS框架,一个多用户博客系统。

参考资料:

数据库结构设计:

概念结构设计:

  • 实体->属性->关系(橙色是已经创建设计,黑色表示待创建)
    1. 用户
    2. 角色
    3. 权限点
    4. 分类/标签
    5. 文章
    6. 图片
    7. 上传文件
    8. 评论
    9. 系统配置
    10. 站内信
    11. 公告
    12. 友情链接

物理结构设计:

--
-- 表的结构 `blog_access_point`
-- CREATE TABLE IF NOT EXISTS `blog_access_point` (
`access_point_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '权限点id',
`name` varchar(200) NOT NULL COMMENT '权限点',
`user_id` int(10) unsigned NOT NULL COMMENT '创建者id',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`access_point_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='权限点表' AUTO_INCREMENT=1 ; --
-- 转存表中的数据 `blog_access_point`
-- -- -------------------------------------------------------- --
-- 表的结构 `blog_comments`
-- CREATE TABLE IF NOT EXISTS `blog_comments` (
`comment_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '评论ID',
`comment_object_id` int(10) unsigned NOT NULL COMMENT '评论对象ID',
`comment_object_type` tinyint(1) NOT NULL COMMENT '评论对象类型 0:文章 1:评论',
`comment_author` varchar(255) NOT NULL COMMENT '评论者',
`comment_content` text NOT NULL COMMENT '评论内容',
`comment_approved` tinyint(1) NOT NULL DEFAULT '' COMMENT '评论是否被批准 0:否 1:是',
`comment_author_ip` varchar(100) NOT NULL DEFAULT '' COMMENT '评论者ip',
`create_time` datetime NOT NULL COMMENT '评论时间',
`comment_agent` varchar(255) NOT NULL DEFAULT '' COMMENT '评论者agent',
`comment_parent` int(10) unsigned NOT NULL COMMENT '父评论ID',
`user_id` int(10) unsigned DEFAULT NULL COMMENT '评论者id',
PRIMARY KEY (`comment_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='评论表' AUTO_INCREMENT=1 ; --
-- 转存表中的数据 `blog_comments`
-- -- -------------------------------------------------------- --
-- 表的结构 `blog_options`
-- CREATE TABLE IF NOT EXISTS `blog_options` (
`option_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '配置id',
`blog_id` int(10) unsigned NOT NULL COMMENT '博客id 就是用户id',
`option_name` varchar(200) NOT NULL COMMENT '配置名',
`autoload` tinyint(4) NOT NULL DEFAULT '' COMMENT '是否初始化时加载',
`option_value` text NOT NULL COMMENT '配置值',
PRIMARY KEY (`option_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='配置表' AUTO_INCREMENT=1 ; --
-- 转存表中的数据 `blog_options`
-- -- -------------------------------------------------------- --
-- 表的结构 `blog_posts`
-- CREATE TABLE IF NOT EXISTS `blog_posts` (
`post_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`post_author` int(10) unsigned NOT NULL COMMENT '对应作者ID',
`create_time` datetime NOT NULL COMMENT '文章发布时间',
`post_content` longtext NOT NULL COMMENT '正文',
`post_title` text NOT NULL COMMENT '标题',
`post_excerpt` text NOT NULL COMMENT '摘录',
`post_status` tinyint(1) NOT NULL DEFAULT '' COMMENT '文章状态 0 未审核 1 正常',
`comment_status` tinyint(4) NOT NULL DEFAULT '' COMMENT '是否开启评论 0:不开启 1:开启',
`post_password` varchar(20) NOT NULL DEFAULT '' COMMENT '文章密码',
`post_name` varchar(200) NOT NULL DEFAULT '' COMMENT '文章缩略名',
`modify_time` datetime NOT NULL COMMENT '文章修改时间',
`menu_order` int(11) NOT NULL DEFAULT '' COMMENT '排序ID',
PRIMARY KEY (`post_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='文章表' AUTO_INCREMENT=1 ; --
-- 转存表中的数据 `blog_posts`
-- -- -------------------------------------------------------- --
-- 表的结构 `blog_post_statistics`
-- CREATE TABLE IF NOT EXISTS `blog_post_statistics` (
`post_id` int(10) unsigned NOT NULL COMMENT '文章id',
`view_count` int(10) unsigned NOT NULL COMMENT '文章浏览数',
`comment_count` int(10) unsigned NOT NULL COMMENT '文章评论数',
UNIQUE KEY `post_id` (`post_id`,`view_count`,`comment_count`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='文章统计表'; --
-- 转存表中的数据 `blog_post_statistics`
-- -- -------------------------------------------------------- --
-- 表的结构 `blog_role`
-- CREATE TABLE IF NOT EXISTS `blog_role` (
`role_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '角色id',
`name` varchar(200) NOT NULL COMMENT '角色名',
`access_point` varchar(50) NOT NULL COMMENT '权限点',
`create_time` datetime NOT NULL COMMENT '创建时间',
`user_id` int(10) unsigned NOT NULL COMMENT '创建人id',
PRIMARY KEY (`role_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='角色表' AUTO_INCREMENT=1 ; --
-- 转存表中的数据 `blog_role`
-- -- -------------------------------------------------------- --
-- 表的结构 `blog_terms`
-- CREATE TABLE IF NOT EXISTS `blog_terms` (
`term_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '分类方法ID',
`name` varchar(200) NOT NULL COMMENT '分类名',
`term_type` tinyint(1) NOT NULL COMMENT '分类方法:0:分类 1:标签',
`description` text NOT NULL COMMENT '分类方法描述',
`parent` int(10) unsigned NOT NULL DEFAULT '' COMMENT '所属父分类方法ID',
`count` int(11) NOT NULL COMMENT '文章数统计',
PRIMARY KEY (`term_id`),
UNIQUE KEY `name` (`name`,`term_type`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='分类,标签表' AUTO_INCREMENT=1 ; --
-- 转存表中的数据 `blog_terms`
-- -- -------------------------------------------------------- --
-- 表的结构 `blog_term_relationships`
-- CREATE TABLE IF NOT EXISTS `blog_term_relationships` (
`object_id` int(10) unsigned NOT NULL DEFAULT '',
`term_id` int(10) unsigned NOT NULL DEFAULT '',
`term_order` int(11) NOT NULL DEFAULT '',
`object_type` tinyint(1) NOT NULL COMMENT '0:文章 1:图片',
PRIMARY KEY (`object_id`,`term_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='存储每个文章、链接和对应分类、标签的关系'; --
-- 转存表中的数据 `blog_term_relationships`
-- -- -------------------------------------------------------- --
-- 表的结构 `blog_upload`
-- CREATE TABLE IF NOT EXISTS `blog_upload` (
`upload_id` int(10) unsigned NOT NULL DEFAULT '' COMMENT '上传id',
`file_name` varchar(255) NOT NULL COMMENT '上传文件名',
`file_path` varchar(255) NOT NULL COMMENT '上传路径',
`file_md5` varchar(100) NOT NULL COMMENT '上传文件MD5值',
`create_time` datetime NOT NULL COMMENT '上传时间',
`file_status` tinyint(1) NOT NULL DEFAULT '' COMMENT '文件状态 0:已删除 1:正常',
`user_id` int(10) unsigned NOT NULL COMMENT '文件上传人id',
`file_type` tinyint(1) NOT NULL DEFAULT '' COMMENT '文件类型 0:图片',
PRIMARY KEY (`upload_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='上传文件表'; --
-- 转存表中的数据 `blog_upload`
-- -- -------------------------------------------------------- --
-- 表的结构 `blog_users`
-- CREATE TABLE IF NOT EXISTS `blog_users` (
`user_id` int(10) unsigned NOT NULL COMMENT '用户id',
`user_login` varchar(60) NOT NULL COMMENT '登录账号',
`user_pass` varchar(64) NOT NULL COMMENT '登录密码',
`display_name` varchar(250) NOT NULL COMMENT '显示名称',
`registered_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
`user_status` tinyint(1) NOT NULL COMMENT '用户状态',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用户表'; --
-- 转存表中的数据 `blog_users`
--

系统结构设计:

项目的目录结构:

  • admin 后台文件夹
  • application 前台文件夹
  • system CI系统文件夹
  • admin.php 后台入口文件
  • index.php 前台入口文件

admin是application的复制文件夹,里面结构就是项目CI的主要目录结构

  • cache 缓存
  • config 项目配置
  • controllers 控制器
  • core 项目核心 一般用来扩展system目录core目录下的核心类
  • helpers 项目函数
  • hooks 钩子
  • language 语言
  • libraries 项目类
  • logs 项目日志
  • models 模型
  • third_party 第三方类库
  • views 视图

模块结构:(待续)

程序结构:(待续)

基于SAE+CodeIgniter3.0+管理端angularjs+前台amazeui的多用户博客系统V1.0--系统设计(一)的更多相关文章

  1. 【ASP.NET实战教程】基于ASP.NET技术下多用户博客系统全程实战开发(NNblog)

    岁末主推:牛牛老师主讲,多用户博客系统,基于ASP.NET技术,年后将带来移动业务平台项目项目目标: 打造个性品牌Blogo,定制多用户博客 为每一个博客用户提供个性化的 blogo解决方案,打造精品 ...

  2. 项目实战(连载):基于Angular2+Mongodb+Node技术实现的多用户博客系统教程(2)

    本章主要讲什么(一句话)?   <项目实战:基于Angular2+Mongodb+Node技术实现的多用户博客系统教程(2)> -- 基于MongoDB的MyBlog数据库知识技术储备(上 ...

  3. 四、Java多人博客系统-2.0版本

    由于时间关系,多人博客系统这里穿插一个2.0版本. 2.0版本本来是打算用于建立个人网站,但是后来发现个人建站需要购买域名服务器,还需要备案,很繁琐.最终放弃.完成此版本,最终也只是作为技术演练.此版 ...

  4. 基于HTML,css,jQuery,JavaScript,MySQL搭建博客系统

    一.登陆注册 二.登录验证码相关 三.博客首页显示相关 四.当前用户的家目录显示 五.点赞以及取消 六.父评论以及子评论操作 七.后台管理首页 八.文章的操作(增.删,改) 九.文件上传问题 十.me ...

  5. j2ee开源项目——IT学习者博客(itxxzblog v1.0)

    大家好,我是IT学习者-螃蟹,已经有近一周的时间没有更新文章了,作为回报,今天起将更新一个大件,也就是螃蟹还在进行中的IT学习者博客. IT学习者博客的初期设计已经完成,功能也已经完成了大半,具备了当 ...

  6. 基于 Express + MySQL + Redis 搭建多用户博客系统

    1. 项目地址 https://github.com/caochangkui/node-express-koa2-project/tree/master/blog-express 2. 项目实现 Ex ...

  7. 五、Java多人博客系统-2.0版本-数据库设计

    数据库设计表如下:文章类别表.文章表.评论表.留言表. 文章列表表:存放文章类别,首页菜单生成也是从这个表取的. 文章表:存放文章标题.发表时间.内容等信息. 评论表:文章评论内容. 留言表:用户发表 ...

  8. 七、Java多人博客系统-2.0版本-docker部署

    docker是当下很热门的技术,是对之前的部署系统方式的彻底改变.之前部署系统,需要安装数据库.初始化数据库,安装jdk,配置jdk,部署应用程序,修改配置文件等,很繁琐.一般现场运维人员很难搞定,现 ...

  9. 六、Java多人博客系统-2.0版本-代码实现

    1.前后端分离,后端使用spring boot,只负责提供数据,对外暴露Restful API.前端使用vue,只负责展示数据和向后台提交数据. 2.数据库使用mariadb,存储所有数据. 3.前端 ...

随机推荐

  1. BAT-使用BAT方法判断网络启动EXE(快捷方式)

      原理思路:先启动iNode,如果访问www.baidu.com成功,证明网通了,这时就启动GXT和邮件等.PS:因为对BAT不清楚,所以自己写的东东可能有问题,希望大家有了解BAT的,看一下是否正 ...

  2. windows mobile 6.5 隐藏 左下角(左上角)的开始按钮 叉号关闭按钮

    其实做起来很简单,但是国内的网站就是找不到. 1.开始按钮原来的界面是这样的: windows mobile 6.0界面: windows mobile 6.5.X界面: 修改一个windows mo ...

  3. Linux的文件属性

    在Linux中,文件的拥有者可以将文件的属性设置成三种属性,可读(r).可写(w)和可执行(x).文件又分为三个不同的用户级别,文件的拥有者(u),文件的所属组(g),其他用户(o). 第一个字符显示 ...

  4. 读取txt正则匹配行写入txt

    StreamReader sr = new StreamReader("C:\\Users\\Administrator\\Desktop\\blogbbs\\dd.txt",En ...

  5. BBC 生命大设计

    BBC霍金的生命的意义一视频中,有一段图案特别漂亮,于是我就写了一下,具体的繁殖规则是这样的:有存活体和死方格两个部分构成,我分别用 ' * ' 和 ‘  ’ 表示.当一个存活体周围有超过三个存活体时 ...

  6. 第三篇——第二部分——第五文 配置SQL Server镜像——域环境SQL Server镜像日常维护

    本文接上面两篇搭建镜像的文章: 第三篇--第二部分--第三文 配置SQL Server镜像--域环境:http://blog.csdn.net/dba_huangzj/article/details/ ...

  7. Python调用C可执行程序(subprocess) 分类: python 服务器搭建 C/C++ shell 2015-04-13 21:03 87人阅读 评论(0) 收藏

    从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system.os.spawn.os.popen.popen2.commands. ...

  8. 初步掌握HBase

    1.HBase概述 HBase是hadoop生态系统中的重要组成部分,是一个开源的.面向列.适合存储海量非结构化数据或半结构化数据,具备高可靠性.高性能.可灵活扩展伸缩.支持实时数据读写的分布式存储系 ...

  9. ubuntu权限管理常用命令 分类: linux ubuntu 学习笔记 2015-07-05 14:15 77人阅读 评论(0) 收藏

    1.chmod 第一种方式 chomd [{ugoa}{+-=}{rwx}] [文件或者目录] u 代表该文件所属用户 g 代表该文件所属用户组 o 代表访客 a 代表所有用户 +-=分别表示增加权限 ...

  10. SELECT [Code] ,[AlarmID] ,[ItemName] ,[isDeleted] ,[Remark] FROM [LjlData].[dbo].[T_BaseDetail] union select 0--

    SELECT  [id]       ,[AlarmID]       ,[ItemName]       ,[isDeleted]       ,[Remark]   FROM [LjlData]. ...