首页 > 代码库 > 基于SAE+CodeIgniter3.0+管理端angularjs+前台amazeui的多用户博客系统V1.0--系统设计(一)

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

开发环境:

  • 服务器系统: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框架,一个多用户博客系统。

参考资料:

  • <细说php>
  • wordpress数据库设计以及大牛的解释http://blog.csdn.net/ppiao1970hank/article/details/6301812

数据库结构设计:

 

概念结构设计:

  • 实体->属性->关系(橙色是已经创建设计,黑色表示待创建)
    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 1 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 0 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 1 COMMENT 文章状态 0 未审核 1 正常,  `comment_status` tinyint(4) NOT NULL DEFAULT 1 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 0 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 0 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 0,  `term_id` int(10) unsigned NOT NULL DEFAULT 0,  `term_order` int(11) NOT NULL DEFAULT 0,  `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 0 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 1 COMMENT 文件状态 0:已删除 1:正常,  `user_id` int(10) unsigned NOT NULL COMMENT 文件上传人id,  `file_type` tinyint(1) NOT NULL DEFAULT 0 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--系统设计(一)