前后台展示
数据库的设计;
字长是CPU的主要技术指标之一,指的是CPU一次能并行处理的二进制位数,字长总是8的整数倍,通常PC机的字长为16位(早期),32位,64位。 但 在32位软件系统(如32位的linux版本)中64位字长的CPU只能当32位用。
varchar(2) 里面的2指的是字符数。不是字节数。
1个字符占几个字节就取决于编码类型。utf-8, 一个汉字3字节 英文字母1字节。GBK:一个汉字=2个字节
英文字母:
字节数 : 1;编码:GB2312
字节数 : 1;编码:GBK
字节数 : 1;编码:GB18030
字节数 : 1;编码:ISO-8859-1
字节数 : 1;编码:UTF-8
字节数 : 4;编码:UTF-16
字节数 : 2;编码:UTF-16BE
字节数 : 2;编码:UTF-16LE
中文汉字:
字节数 : 2;编码:GB2312
字节数 : 2;编码:GBK
字节数 : 2;编码:GB18030
字节数 : 1;编码:ISO-8859-1
字节数 : 3;编码:UTF-8
字节数 : 4;编码:UTF-16
字节数 : 2;编码:UTF-16BE
字节数 : 2;编码:UTF-16LE
create database imooc_singcms;
use imooc_singcms;
DROP TABLE IF EXISTS `cms_admin`;
用户表
序号,用户名,密码,登陆IP,最后登陆时间,邮箱,真实姓名,状态
CREATE TABLE `cms_admin` (
`admin_id` mediumint(6) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL DEFAULT '',
`password` varchar(32) NOT NULL DEFAULT '',
`lastloginip` varchar(15) DEFAULT '0',
`lastlogintime` int(10) unsigned DEFAULT '0',
`email` varchar(40) DEFAULT '',
`realname` varchar(50) NOT NULL DEFAULT '',
`status` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`admin_id`),
KEY `username` (`username`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
菜单表
菜单Id,菜单名,多级菜单ID,模块,控制器,方法,listorder排序,状态,类型(前台,后台)
注意索引的创建
DROP TABLE IF EXISTS `cms_menu`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `cms_menu` (
`menu_id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(40) NOT NULL DEFAULT '',
`parentid` smallint(6) NOT NULL DEFAULT '0',
`m` varchar(20) NOT NULL DEFAULT '',
`c` varchar(20) NOT NULL DEFAULT '',
`f` varchar(20) NOT NULL DEFAULT '',
`data` varchar(100) NOT NULL DEFAULT '',
`listorder` smallint(6) unsigned NOT NULL DEFAULT '0',
`status` tinyint(1) NOT NULL DEFAULT '1',
`type` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`menu_id`),
KEY `listorder` (`listorder`),
KEY `parentid` (`parentid`),
KEY `module` (`m`,`c`,`f`)
) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
新闻文章主表
id,栏目id,标题,副标题,标题颜色,缩略图,关键字,描述,排序,状态,来源,作者,创建时间,更新时间,计数器
注意索引的创建
DROP TABLE IF EXISTS `cms_news`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `cms_news` (
`news_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`catid` smallint(5) unsigned NOT NULL DEFAULT '0',
`title` varchar(80) NOT NULL DEFAULT '',
`small_title` varchar(30) NOT NULL DEFAULT '',
`title_font_color` varchar(250) DEFAULT NULL COMMENT '标题颜色',
`thumb` varchar(100) NOT NULL DEFAULT '',
`keywords` char(40) NOT NULL DEFAULT '',
`description` varchar(250) NOT NULL COMMENT '文章描述',
`posids` varchar(250) NOT NULL DEFAULT '',
`listorder` tinyint(3) unsigned NOT NULL DEFAULT '0',
`status` tinyint(1) NOT NULL DEFAULT '1',
`copyfrom` varchar(250) DEFAULT NULL COMMENT '来源',
`username` char(20) NOT NULL,
`create_time` int(10) unsigned NOT NULL DEFAULT '0',
`update_time` int(10) unsigned NOT NULL DEFAULT '0',
`count` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`news_id`),
KEY `status` (`status`,`listorder`,`news_id`),
KEY `listorder` (`catid`,`status`,`listorder`,`news_id`),
KEY `catid` (`catid`,`status`,`news_id`)
) ENGINE=MyISAM AUTO_INCREMENT=25 DEFAULT CHARSET=utf8;
新闻文章附表
(考虑:文章的内容,数据比较大,如果和主表放在一起,会影响性能)
id,主表id,文章内容,创建时间,更新时间
DROP TABLE IF EXISTS `cms_news_content`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `cms_news_content` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`news_id` mediumint(8) unsigned NOT NULL,
`content` mediumtext NOT NULL,
`create_time` int(10) unsigned NOT NULL DEFAULT '0',
`update_time` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `news_id` (`news_id`)
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;
后台推荐位管理表
id,推荐位名称,状态,描述,创建时间,更新时间
DROP TABLE IF EXISTS `cms_position`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `cms_position` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`name` char(30) NOT NULL DEFAULT '',
`status` tinyint(1) NOT NULL DEFAULT '1',
`description` char(100) DEFAULT NULL,
`create_time` int(10) unsigned NOT NULL DEFAULT '0',
`update_time` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
推荐位内容表
id,推荐位标识id,标题,缩略图,url地址,文章内容id(没有就去找url),排序,状态,创建时间,更新时间
DROP TABLE IF EXISTS `cms_position_content`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `cms_position_content` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`position_id` int(5) unsigned NOT NULL,
`title` varchar(30) NOT NULL DEFAULT '',
`thumb` varchar(100) NOT NULL DEFAULT '',
`url` varchar(100) DEFAULT NULL,
`news_id` mediumint(8) unsigned NOT NULL,
`listorder` tinyint(3) unsigned NOT NULL DEFAULT '0',
`status` tinyint(1) NOT NULL DEFAULT '1',
`create_time` int(10) unsigned NOT NULL DEFAULT '0',
`update_time` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=36 DEFAULT CHARSET=utf8;
写入静态页面:
ThinkPHP:快速,简单的基于MVC和面向对象的轻量级PHP开发框架
- 入手快
- 提供核心内裤,文件,函数
第一次加载,Application会生成Common,Home,Runtime两个文件夹,自己添加一个Admin(做为后台网站模块)
Common(公共模块目录),Home(前台网站模块)
Home - Common 新建公共函数
- Conf
- Controller 业务逻辑
- Model数据加载,和数据库有关
- View
第一次加载
http://localhost/tp/index.php?m=home&c=index&a=index
登陆页面跳转了新的页面,用户体验不是很好,所以最好使用异步方式来处理(Ajax),页面没有刷新