一聚教程网:一个值得你收藏的教程网站

热门教程

在大型社区系统中用二维数组实现用户高级功能(1)

时间:2022-06-30 10:03:22 编辑:袖梨 来源:一聚教程网

在大型的社区系统中,有很多的用户高级功能需要实现.例如查询用户所在的版面,给特定的用户发送短消息,
查询用户的信息,用户等级管理等等.这些高级功能的实现有很多的方法,比如
1,用数据库实现.这也是最简单且最常用的方案.它的实现原理如下:
将用户的信息存如规划好的数据库中,若用户的状态改变则修改数据库.若有对该用户的查询请求则申请对数
据库的调用.看下面的一个表的示例
CREATE TEBLE user_info (user_id mediumInt not null ,
user_id Char not null ,
nick_name Chaer not null ,
user_sex char not null ,
user_level smallInt not null default 3,
login_time Time default time(),
logout_time Time default time(),
user_position Char default "大厅",
.......
.......
)
好了,上面的这个表格只是一个简单的例子,它用来保存用户信息的方方面面.在一个用户登陆(login)的同时
对该表某些表项做一些初始化,当用户状态改变时对该表的相应表项做必要的修改,然后在应用中调用该表的相
关的表项.例如查看用户的位置select use_position from user_info where user_name="user_name".这种方案
的最大的缺点在于系统的开销.想象一下当大量的用户在查询时要打开多少个数据库的连接进程.而且每一次的用
户状态改变,比如从一个版面到另一个版面的时候都需要对数据库进行修改.这对于大型的系统是不实用的.
2,将一个功能模块封装,调入内存.这是最佳的解决方案,比如用isAPI来实现,或者用Java来实现.它的速度非常
的快,且只需要在系统的初始化时对它进行初始化,当用户登陆(login)和改变状态时调用相关的方法(method)来
修改表项就行了.我将在本文的实现篇中给出相关的介绍.但这种方案在实现的时候相对较难
3,就是本文提到的用二维数组来实现了.它的第一维用来定义用户的信息,然后将所有的用户组合为一个二维的
数组.再将该数组保存到一个application的二维数组中,由于application变量的特性.它将常驻于服务器端内存中

热门栏目