DiscuzNT 实体项目(Entity) 简析

本文介绍了DiscuzNT论坛系统的数据结构和权限管理机制,涵盖了用户组、实体类及其实现方式等内容,并对比了论坛与空间的权限设置。

    声明:本文内容纯属个人观点,官方保留最终解释

    根据目前官方提供的数据字典(详情见链接)。可以看出数据库中的数据结构:包括表名,字段名,
字段类型,含义等。通过这些文档可以让大家对整个数据的表结构有一个基本了解。另外本人觉得,如果
用一篇文章去讲解数据库,让人多少有些凑字的嫌疑。所幸目前还有 Discuz.Entity.dll这个项目没
有介绍,所以想以这个 dll为主线,“搂草打兔子”,顺便简要介绍一下数据库。

    因为我们的实体类代码是以数据表为导向( entity大部分类都是与数据库表有着对应关系)。比如:
ForumInfo(版块),TopicInfo(主题), PostInfo(帖子),AttachmentInfo(附件)等等。而它们
之间的关系如下:




    而另一个重要的实体关联是: UserInfo(用户) , UserGroupInfo(用户组), ModeratorInfo
(版主),ForumInfo(版块),如下图:

          

    了解了上面两条“主线”,大家应该清楚一个论坛数据库所应有的血肉了,而它们如何协调工作(逻辑执
行),就是Discuz.Forum.dll, Discuz.Space.dll要做的事了。但这方面的内容本文先不急于涉及,
在这里先卖个关子了:)

    下面要说的是一个关于权限的问题,请看下图:





    即用户可以通过用户组,版主列表,创始人登陆来获得权限。然后就可以用相应的权限对资源进行相
应的管理操作了。而作为非常重要的核心:“用户组管理”是有很多文章可做的。

    比如用户组目前的分类如下:

    系统组:对应于数据表dnt_usergroups中的system字段为1的用户组,这些用户组是系统初始化
          时创建,不能在后台删除,只能编辑。

    积分用户组:为了普通的用户访问论坛提供积分设置以及各种控制功能。

    管理组:用于前台管理和控制权限绑定。如版主和超级版主管理员等等。而管理组在数据库表中还对
          应一个表即dnt_admingroups,用户对一些管理操作进行权限指定。

    特殊用户组:用于对有特殊权限的用户进行定制 (有点像绿色通道)。

 

    而不管用户组表中的数据是冗余数据(如dnt_usergroups表中的radminid字段,如下图)还是复
杂的用户组类型绑定,都是为了强化管理权限的灵活设置和高效运行。



    另外在Discuz.Entity.dll,还有一些其它的info类,比如space, album, Global文件夹下
的 cs文件等。

    相对于论坛的权限设置,空间的权限设置要简单得多。基本上与 cnblogs相似,即个人有各自的后
台来进行“高度”自治。管理员也有开通,关闭,审核,推荐到聚合页面等功能。

    好了,就聊到这里吧,相信大家对这些东东有了一个大致的了解。如果大家感兴趣,可以再找出源码
来一探究竟,会找到更多有趣的东西。


    限于写作时间并不充裕,导致有些问题可能并未阐述清楚,欢迎与我交流。

    我的email:  daizhj@discuz.com,  daizhj617595@126.com, daizhj@gmail.com

    作者: daizhj,代震军

    关键字: discuznt,discuz,实体,Entity

 
摘要:VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的程序代码基于面向对象、分层架构、ORM及反射+工厂设计模式等。支持.Net1.1及以上版本,可用于Oracle、SqlServer、Sybase、DB2、MySQL、Access、SQLite、PostgreSQL、DM(达梦)、PowerDesigner文件、Informix、Firebird、MaxDB、Excel等和OleDb、ODBC连接的数据库并可自定义,详见文档及安装文件的示例和工具的帮助文档。 关键字: VB/C#.Net实体代码生成工具 实体代码生成工具 EntitysCodeGenerate 预期读者: 软件开发及相关人员 难度等级: 中 当前版本: 4.3 目 录 1 引言 3 2 内容 4 2.1 ORM框架的实现:VB/C#.Net实体代码生成工具(EntitysCodeGenerate) 4 2.2 在开发中的实际应用 5 2.2.1 单个实体对象的数据库操作 6 1、获取一个实体对象信息 6 2、插入一个实体对象信息 6 3、更新一个实体对象信息 6 4、保存一个实体对象信息 6 5、删除一个实体对象信息 7 6、取得实体映射表数值字段的最大值+1 7 2.2.2 多个实体对象的数据库操作 7 1、实体集对象的使用 7 2、结合事务处理 7 2.2.3 数据查询及通用DML操作 9 1、 常用实体对象查询 9 2、 ORM结构化查询 9 (1)、Select查询 10 (2)、From连接查询 10 (3)、Where语句的Condition条件 11 (4)、Order By排序功能 11 (5)、Group By分组条件及排序 12 (6)、结合事务处理的功能 14 3、Delete删除 15 4、Update更新 15 5、Insert插入 16 2.2.4 DbCore+SQL/存储过程 17 1、DbCore+SQL 17 2、DbCore+存储过程 19 2.2.5 Extend辅助扩展功能 20 1、TableHelp辅助扩展 20 2、CommonHelp常用方法扩展 22 2.2.6 ORM的分析及与Xml的交互 22 1、ORM的分析 22 2、与XML的交互 23 3 结束语 23 4 相关下载地址 24 http://www.skycn.com/soft/53715.html http://download.enet.com.cn/html/030212009031901.html http://www.newhua.com/soft/98941.htm http://www.duote.com/soft/32643.html http://www.crsky.com/soft/25626.html http://download.csdn.net/source/3030634 http://qun.qq.com/air/#60873348/share http://blog.csdn.net/chutao http://lxchutao.blog.163.com http://hi.baidu.com/lxchutao http://download.enet.com.cn/eblog/blog/htm/uid_21280.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值