您的位置:首页网页设计PHP实例 → 基于mysql的bbs设计(二)

基于mysql的bbs设计(二)

时间:2004/11/7 3:25:00来源:本站整理作者:蓝点我要评论(0)

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

  // 是必然的。删除也是先做个标记。



  // 用户中的版面文章是否未读的数据比较繁,是否应该再建一堆的表

  // 才能实现呢?

  // 投票功能暂不考虑。。。。


相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 我的php文件怎么打开_php运算符怎么写 php 如何生成静态页面的函数PHP生成图片缩略图PHP session常见问题集锦及解决办法PHP实现同步远程Mysql

人气排行 DEDE在文章列表文章没有缩略图的不显示图片php+mysq修改用户密码我的php文件怎么打开_如何打开php文件的办法FCKeditor的配置和使用方法使用dedecms建站教程PHP+Ajax实现分页技术图片存储与浏览一例Linux+Apache+PHP+MySQLPHP生成图片缩略图