回 帖 发 新 帖 刷新版面

主题:[原创]C/S 架构的MySQL数据库设计以及程序如何设计好

########################################################################################################################################################
我想在一个C/S+MySQL+VC6下开发一个管理系统,准备通过RBAC来进行权限管理。
比如一个用户在客户端点击一个查询学生信息按钮操作,然后将查询结果返回到客户端。在服务端只是记录所有当前登陆用户的名字、客户端对应IP、操作时间以及进行的操作
下面是我的想法:
1.通过客户端直接连接到服务端数据库,进行查询,此时是不是根据数据库中表的关系进行用户验证呢?比如有以下表:
  a.用户表
  b.角色表
  c.权限表 //对于该表,有个问题:一个系统有很多子系统,管理不同的实体信息,对于不同实体信息,都会有增删改查操作,那么是每个实体对应一个权限表么?
  d.用户-角色表
  e.角色-权限表
  f.学生信息表
那么首先可以通过用户表验证用户是否合法(即验证用户和密码是否匹配),然后通过用户-角色表看该用户属于哪种角色,然后根据角色-权限表查看该用户具有那些权限,如果一

切OK的话,才能执行sql语句查询的吧?然后通过VC里面的控件接收返回的信息。

2.RBAC的原理已经知道了,但是不知道在程序里面怎么去设计,只是需要在数据库中建立好表之间关系就可以了么?被查询的信息比如上面的学

生信息,不需要在代码中给它写个类吧?

3.服务端想知道是哪个用户登陆了,IP地址、进行了哪些操作以及操作时间。我是否需要定义一个类似的数据结构:用于用户端和服务端之间send/recv
struct loginInfo
{
  char* name;//用户名
  Time  loginTime;//操作时间
  char* action; //用户操作
}

以便在服务端中查看如下形式的信息:
序号 用户名 IP地址 操作时间 操作
1 aaa 192.168.1.10    2009-09-09 09:10:10 登陆
2 aaa 192.168.1.10 2009-09-09 09:15:10 查询学生信息
3 aaa 192.168.1.10 2009-09-09 09:16:10 添加了学生信息
3 bbb 192.168.1.20 2009-09-09 09:18:10 登陆
4 bbb 192.168.1.20 2009-09-09 09:19:13 删除学生信息
5 aaa 192.168.1.10 2009-09-09 09:20:10 查询学生信息
....


4.每登陆一个用户,我就需要在服务端上新建一个线程与其通信,主线程用来监视端口。

5.哪位大侠能帮忙推荐一些和我做的有关的资料,我看的资料大部分都是数据库和应用程序在同一个机器,即单机版那种。没有查看到C/S+数据库的例子。
因为第一次做这样的东西,没有经验,不知道预期会遇到什么问题,以及还有哪些问题没有考虑清楚。请各位帮忙指点一下,谢谢了。

########################################################################################################################################################

回复列表 (共1个回复)

沙发

还要请高手解答

我来回复

您尚未登录,请登录后再回复。点此登录或注册