基于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 相关文章推荐
phpMyAdmin2.11.6安装配置方法
Aug 24 PHP
php单件模式结合命令链模式使用说明
Sep 07 PHP
晋城吧对DiscuzX进行的前端优化要点
Sep 05 PHP
PHP的explode和implode的使用说明
Jul 17 PHP
使用 PHPMAILER 发送邮件实例应用
Nov 07 PHP
php获取URL中带#号等特殊符号参数的解决方法
Sep 02 PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
Sep 29 PHP
php中运用http调用的GET和POST方法示例
Sep 29 PHP
php+MySQL实现登录时验证登录名和密码是否正确
May 10 PHP
基于Laravel5.4实现多字段登录功能方法示例
Aug 11 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
Jun 11 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
投票管理程序
2006/10/09 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
PHP链接MySQL的常用扩展函数
2014/10/23 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
2021/02/26 PHP
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
2015/07/27 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
Vue封装Swiper实现图片轮播效果
2018/02/06 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
ElementUI radio组件选中小改造
2019/08/12 Javascript
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
antd配置config-overrides.js文件的操作
2020/10/31 Javascript
Python 基础之字符串string详解及实例
2017/04/01 Python
Python定时器实例代码
2017/11/01 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
利用python画出AUC曲线的实例
2020/02/28 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
个人批评与自我批评材料
2014/10/17 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
干货:如何写好工作总结报告!
2019/05/10 职场文书
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS