基于mysql的bbs设计(二)


Posted in PHP onOctober 09, 2006

3。数据库设计
  关键还是mysql的效率问题,合理分配mysql的内存,特别是table cache的
大小。另外,当系统突然掉电呢?mysql是否robust?
  table的名字设计,采用一位前缀表明类型,全部用小写表示(?),例如:
系统的数据库,以s为前导,如用户表:suser(sUSER 呢?),具体如下:
  s :系统表,suser,sclass
  m :用户信件表,msysop,mdrangon
  w :用户消息表,wsysop,wdrangon
  a :版面索引表,alinux,acampus
  b :版面文章表,blinux,bcampus
  c :特殊分类版面表,cnewboard
  i :精华区索引表,ilinux,ilinux01,icampus,icampus04
  j :精华区文章表,jlinux,jcampus,

  另外,是使用字串还是数字作为标识呢?例如,一个叫sysop的帐号,其
id是1,他的信的表是msysop还是m00001呢?同样,一个叫campus的版,对应的
代码是5,则这个版的文章的表名是bcampus还是b00005呢?可能用字串会容易
理解,查错吧。

  用户信息表:suser
  usernum int unique, // 唯一标识符,最多30000个帐号,会不会太少了?
  userid char[20] primary key, // 排序的关键字,id,全小写。
  passwd char[20], // 密码,存放加密后的密文。
  realid char[20], // 实际id,大小写混合。
  username  char[24], // 用户的泥称
  userlevel  longint,  // 64种权限?
  numlogins  int,
  numposts  int,
  firstlogin time,
  lastlogin  time,
  staytime  time,    /* 总共停留时间 */
  lasthost  char[32],
  email    varchar[100],
  address   varchar[100],
  // 还需要其他数据吗?是否需要留出一定的保留值,以后alter table来
  // 增加新的字段时,效率如何?

  版面分类表:sclass
  classnum  int unique, // 分类标识
  classid   char[20],  // 分类的英文id:computer
  classname  varchar[100],// 分类的中文描述:电脑世界
  classtable char[20],  // 特殊分类对应的版面表
  // 一般来说,每个版面只属于一个分类,对于特殊分类,例如拳头版块,
  // 新版面,可以用专门的表来描述

  版面表:sboard
  boardnum  int unique,   // 版面的标识(需要吗?)
  boardid   char[20],    // 版面的英文名
  boardname  varchar[100],  // 版面的中文名
  boardclass char[20],    // 版面所属分类
  boardsysop varchar[100],  // 斑竹名单
  boardposts int,      // 版面的文章数
  boardlevel int,      // 版面的读写权限
  indextable char[20],    // 版面对应的索引表的名称:aboardid?
  texttable  char[20],    // 版面对应的文章表名称:  bboardid?
  // 最后两项有没有必要出现,是否可以作为必然对应关系,还是允许
  // 出现更大的灵活性?另外版面的大小写问题是否可以直接默认
  // 只开头字母大写,

  特殊分类版面表:snewboard, sstarboard
  boardid   char[20],  // 版面的id
  // 这样的表有必要吗?

  版面索引表:acampus,alinux,afootball。。。。。。
  id   int,      // 文章序数,要手动调整????
  mark  char[1],    // 文章标记,m,g,b,d。。。。
  title  varchar[100],  // 文章标题
  writer char[20],    // 文章作者id
  posttime time,     // 发表时间
  textnum  longint,   // 对应的编号???不调整

  版面文章表
  textnum   longint,  // 文章编号?
  textword  text,    // 文章内容?
  // 有必要将索引和文章内容分开吗?从效率上看,况且lazy flush
  // 是必然的。删除也是先做个标记。

  // 用户中的版面文章是否未读的数据比较繁,是否应该再建一堆的表
  // 才能实现呢?
  // 投票功能暂不考虑。。。。

PHP 相关文章推荐
php 图像函数大举例(非原创)
Jun 20 PHP
php学习之数据类型之间的转换代码
May 29 PHP
基于PHP+Ajax实现表单验证的详解
Jun 25 PHP
PHP调用C#开发的dll类库方法
Jul 28 PHP
如何让CI框架支持service层
Oct 29 PHP
配置Nginx+PHP的正确思路与过程
May 10 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
Jun 29 PHP
PHPExcel导出2003和2007的excel文档功能示例
Jan 04 PHP
PHP中仿制 ecshop验证码实例
Jan 06 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
laravel手动创建数组分页的实现代码
Jun 07 PHP
基于mysql的bbs设计(三)
Oct 09 #PHP
支持oicq头像的留言簿(一)
Oct 09 #PHP
NT IIS下用ODBC连接数据库
Oct 09 #PHP
怎样在UNIX系统下安装php3
Oct 09 #PHP
怎样在UNIX系统下安装MySQL
Oct 09 #PHP
关于文本留言本的分页代码
Oct 09 #PHP
支持oicq头像的留言簿(二)
Oct 09 #PHP
You might like
PHP常用代码大全(新手入门必备)
2010/06/29 PHP
对象失去焦点时自己动提交数据的实现代码
2012/11/06 PHP
解析MySql与Java的时间类型
2013/06/22 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
Yii框架模拟组件调用注入示例
2019/11/11 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
一个加载js文件的小脚本
2007/06/28 Javascript
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
原生JS实现多个小球碰撞反弹效果示例
2018/01/31 Javascript
使用express获取微信小程序二维码小记
2019/05/21 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
跟老齐学Python之有点简约的元组
2014/09/24 Python
开始着手第一个Django项目
2015/07/15 Python
Python探索之pLSA实现代码
2017/10/25 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
2019/04/27 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
Html5+JS实现手机摇一摇功能
2015/04/24 HTML / CSS
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
责任胜于能力演讲稿
2014/05/20 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
工厂标语大全
2014/10/06 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL