Fork me on GitHub

博客系统的数据库设计

六张数据表的命名

  1. 内容表 contents
  2. 关系表 relationships
  3. 项目表 metas
  4. 评论表 comments
  5. 配置表 options
  6. 用户表 users

内容表可以扩展出来的类型

  • post(文章)
  • draft(草稿)
  • page(页面)
  • link(链接)
  • attachment(文件)

然后再来看看项目表里的类型

  • category(分类)
  • tag(标签)
  • link_category(链接分类)

数据字典

contents表
键名 类型 属性 解释
cid int(10) 主键,非负,自增 post表主键
title varchar(200) 可为空 内容标题
slug varchar(128) 索引,可为空 内容缩略名
uri varchar(200) 可为空 资源描述符
created int(10) 索引,非负,可为空 内容生成时的GMT unix时间戳
modified int(10) 非负,可为空 内容更改时的GMT unix时间戳
text text 可为空 内容文字
tags varchar(200) 可为空 内容标签,冗余字段
meta int(10) 索引,非负,可为空 首选项id,冗余字段
author int(10) 索引,非负,可为空 内容所属用户id
template varchar(32) 可为空 内容使用的模板
type varchar(32) 索引 内容类别
password varchar(32) 可为空 受保护内容,此字段对应内容保护密码
commentsNum int(10) 非负,可为空 内容所属评论数,冗余字段
allowComment enum(enable, disable) 可为空 是否允许评论
allowPing enum(enable, disable) 可为空 是否允许ping
allowFeed enum(enable, disable) 可为空 允许出现在聚合中

relationships表
键名 类型 属性 解释
cid int(10) 主键,非负 内容主键
mid int(10) 主键,非负 项目主键

metas表
键名 类型 属性 解释
mid int(10) 主键,非负 项目主键
name varchar(200) 可为空 名称
slug varchar(128) 索引,可为空 项目缩略名
type varchar(32) 索引 项目类型
description varchar(200) 可为空 选项描述
count int(10) 非负,可为空 项目所属内容个数
sort int(10) 非负,索引,可为空 项目排序

comments表
键名 类型 属性 解释
coid int(10) 主键,非负,自增 comment表主键
cid int(10) 索引,非负 post表主键,关联字段
created int(10) 非负,可为空 评论生成时的GMT unix时间戳
author varchar(200) 可为空 评论作者
mail varchar(200) 可为空 评论者邮件
url varchar(200) 可为空 评论者网址
ip varchar(64) 可为空 评论者ip地址
agent varchar(200) 可为空 评论者客户端
text text 可为空 评论文字
type enum(‘pingback’, ‘trackback’, ‘comment’) 可为空 评论类型
status enum(‘approved’, ‘spam’, ‘waiting’) 可为空 评论状态
parent int(10) 可为空 父级评论

options表
键名 类型 属性 解释
name varchar(32) 主键 配置名称
user int(10) 主键,非负 配置所属用户,默认为0(全局配置)
value text 可为空 配置值

users表
键名 类型 属性 解释
uid int(10) 主键,非负,自增 user表主键
name varchar(32) 唯一 用户名称
password varchar(32) 可为空 用户密码
mail varchar(200) 唯一 用户的邮箱
url varchar(200) 可为空 用户的主页
screenName varchar(32) 可为空 用户显示的名称
created int(10) 非负,可为空 用户注册时的GMT unix时间戳
activated int(10) 非负,可为空 最后活动时间
logged int(10) 非负,可为空 上次登录最后活跃时间
group enum(‘administrator’, ‘editor’, ‘contributor’, ‘subscriber’, ‘visitor’) N/A 用户组