我的基本主题意见就是讲所对应的字段用array()存储 可一维,可二维,将强大的数组联系到数据库中,
无限级版块,版主,用户,管理
先把id=1的设为不问本站点的主版块,如想要往本站内部插入子版块,便添加至表中,将添加完成的id写入父版块对应的include字段,
如果是终端的话就将1写入对应的end字段
| 字段 | 类型 | 属性 | 默认 | 备注 |
| Id | Int | Key自增 | | 版块id |
| Name | Char(20) | | | 版块name |
| Include | Array() | | 0 | 本版块对应的子版块 |
| End | Int | | 0 | 是否为终端 |
| Master | Array() | | | 对应版主id数组 |
| Notice | Char() | | | 公告 |
| Display | Int | | 1 | 是否显示 |
例子如下:
| Id | Name | Include | end | Master版主 | Nitice | Display |
| 1 | cs乐知 | Array(2,3,4) | 0(默认) | 对应的版主 | 该板块对应的 | 1(默认) |
| 2 | 狼言事态 | Null(默认) | langyan | | 公告 | 1 |
| 3 | 我爱生活 | array(5,6,7) | 0 | | | 1 |
| 4 | 我来写算法 | Array(算法分类) | 0 | | | 1 |
| 5 | 生活推荐 | Null | 0 | | | 1 |
| 6 | 亚洲 | Array(….) | asia | | | 1 |
| 7 | 欧美 | 。。。 | eru | | | 1 |
i. 插入版块流程:
递进式选择需要插入的版块的位置,最后确定位置后,输入名字,浏览权限,(推荐数目,)最后将最近的上一层name传过去,将新建的版块插入数据库,(name唯一),
再select id from bankuai where name=- $name(刚建的版块name)
选出id以后将id修改到上一层的id的include的array中,过程如下:
1) 确定添加的位置,并记录父版块内容,查找字段id
2) 添加新的版块到表中,记录name,查出id,并记录
3) 查找到上一版块的include的数组,读出,
4) 将新添加的id插入到数组中,
5) 将新的数组修改到上一层的id的include字段
ii. 删除:
在显示的时候先查找版块的位置,找出include的数组的东西,and display==1
而删除就是将display该为0;
iii. 修改
1) 名字
根据name进行查找
2) 修改所属版块:
a) 找到name所对应的id,将display改为0;将查找到的id对应的table复制到一个新的表,
b) 插入新的一行,后续插入到新的父版块,如{ I }插入。
iv. 版主功能:由系统上级总管理员对不同的子版块include内的array()内的内容或者子版块的子版块进行版主设置,级别高的版主能够将用户设置为子版块的版主。
v. Notice公告栏:对应的notice表的id
对于好友管理的设计
用户表
| 字段 | 类型 | 属性 | 默认 | 备注 |
| Id | Int | Key自增 | | 用户注册id |
| Name | Char(16) | NotNULL | | 用户名 |
| Pwd | Char(32) | NotNULL | | 密码md5后的值 |
| Real | Char(12) | NotNULL | | 密码的实际值 |
| Score | Int | NotNULL | 0 | 用户积分 |
| Leval | Int | NotNULL | 0 | 用户的等级权限 |
| Masterof | | | | 管理对应版块的id |
| State | Int | | 0 | 0离线1在线2隐身 |
| Friend | Array | Notnull | 0 | 存储用户的好友 |
对于好友系统,将分组作为第一维,再将对应组内的id放在其二维数组里面
更多信息请查看 java进阶网 http://www.javady.com

本文介绍了一种使用数组存储数据库版块信息的方法,包括版块的层级管理、版主分配及公告发布等功能实现细节。

被折叠的 条评论
为什么被折叠?



