打造自己的静态博客系统(二)

  决定用PHP开发后,开始思考博客的额外功能。既然是自己写博客系统,那就得有自己独特的东西在里面。

  几乎所有的站长都面临一个问题:提高用户黏度,降低跳出率。当然,大多数站长都用了随机文章、相关文章、热门文章等边栏提高用户黏度。

  但我突然想起了迪斯尼公园修人行道路的故事:据说当时迪斯尼乐园盖好后,设计者没想好人行道该怎么设计,于是在公园内遍地都铺满了草坪,顾客就在草坪上随意走,久而久之,便形成了道路。真就如鲁迅爷爷说得那样:世上本没有路,走的人多了也就成了路。于是乎,设计者突然灵感爆发,一拍大腿:成了!于是设计者便在新开辟的路上,铺上漂亮的地板成为了人行专用道路。

  网站是不是也能这样呢?

  记录下用户的来源地址,并储存。做一个推荐边栏,通过排序预测用户可能点击的下一系列链接......

  这个想法挺好,但是不得不说一个现实的问题:如何实现?

  在我目前的知识库里,Javascript可以获得页面的来源地址,但是作为一个静态页面,如何存入数据库呢?

  Ajax!!!

  这样一个功能,自己开发起来非常简单,但是如果要用插件的形式实现在其它博客系统里,却面临着很多问题。

  当然这也就牵扯到一个问题:不得不用数据库了。说实话,不用数据库的博客系统我还有点不习惯。静态博客系统用数据库,哈,这也是本博客系统的特点之一吧!

  于是乎,有如下数据库中表的结构如下:

-- 文章表
CREATE TABLE `post` (
  `P_Id` bigint(20) NOT NULL AUTO_INCREMENT,   -- 文章ID
  `P_Title` text NOT NULL,                            -- 文章标题
  `P_Content` longtext NOT NULL,              -- 文章内容
  `P_Category` int(11) NOT NULL,          -- 文章分类
  PRIMARY KEY (`P_Id`)
);
-- 用户浏览痕迹表
CREATE TABLE `post_map` (
  `C_Id` bigint(20) NOT NULL,                  -- 当前文章ID
  `N_id` bigint(20) NOT NULL,                  -- 下一篇文章ID
  `M_Count` int(10) unsigned zerofill NOT NULL DEFAULT '0', -- 点击次数
  PRIMARY KEY (`C_Id`,`N_Id`) 
);
-- 标签表
CREATE TABLE `tag` (
  `T_Id` int(11) NOT NULL AUTO_INCREMENT,    -- 标签ID
  `T_Name` varchar(20) NOT NULL,                  -- 标签名
  `T_Count` int(11) unsigned zerofill NOT NULL DEFAULT '0',
  PRIMARY KEY (`T_Id`)                        -- 标签文章数
);
-- 文章标签关系表
CREATE TABLE `tag_relative` (
  `P_Id` bigint(20) NOT NULL,          -- 文章ID
  `T_Id` int(11) NOT NULL,             -- 标签ID
   PRIMARY KEY(`P_Id`,`T_Id`)  
);
-- 文章分类表
CREATE TABLE `category` (
  `C_Id` int(11) NOT NULL AUTO_INCREMENT, -- 分类ID
  `C_Name` varchar(20) NOT NULL,          -- 分类名
  `C_Count` int(11) unsigned zerofill NOT NULL,   -- 分类文章数
  PRIMARY KEY (`C_Id`)
);
/*因为我比较懒,再加上本身为轻量级的博客,关系表的外键、建立索引之类的就直接省略了*/

  数据库建立好之后,就要开始写后台操作了,Fighting~~~

posted @ 2016-04-23 16:41  站长高小调  阅读(440)  评论(0编辑  收藏  举报