zoukankan      html  css  js  c++  java
  • OA项目中的论坛模块设计与实现

    1、论坛是什么?论坛与贴吧有什么区别?

     简单的说论坛和贴吧都是发表言论和讨论的一个平台。

    贴吧是论坛的一个部分。

    2、关于论坛模块的需求分析?

    首先我们看看论坛的几个设计页面:

    这个主要是论坛的版块设计:基本功能是增删改查和上下移动功能的实现。

    当我们设计实体的时候,很容易设计id,name,description字段,上下移动这个属于隐含字段,通过分析上下移动的功能在实体中设计position位置属性。

    后面相信介绍下实体该如何设计。

    第二块:

    通过上面几个页面我们分析得到:

    (1)论坛管理模块:主要负责版块的CRUD管理和上下移动

    (2)论坛模块:首先显示版块列表,每个版块有多少主题的数量,有多少文章(主题+回复)数量,最后一个发表帖子的是哪个。(显示版块列表)

                         其次:当点击某个版块时,显示这个对应的这个版块有多少个主题,主题的作者、回复和最后回复(显示每个版块对应的主题列表)

            当点击发新帖时候,我们会创建一个新的帖子。(创建新帖子)

            当点击某个主题的时候,我们会看到针对某个主题的回复帖子。(显示每个主题的回复列表)

            当点击回帖的时候,可以针对这个主题进行回复。(回帖创建)

    (3)管理员可以针对不符合要求的主题进行修改删除。

    概括:

    整个论坛管理按照操作的主体可以分为:管理员操作的和用户操作的。

    其实根据上面的功能分析没有多少,但个人感觉论坛管理模块的难点在于:如何设计实体中的特殊字段。

    (1)上下移动功能字段positon

    (2)主题数量如何计算:主题的数量是发布的帖子的数量

     (3)文章数量如何计算:文章的数量是主题的数量+回复的数量

    (4)最后发表的主题:最后发表的主题是最新发表的帖子

    (5)回复的数量:回复的数量是针对每个主题的回复的帖子数量

    (6)最后发表的回复:最后发表的回复

    (7)最后更新时间:这个更新时间可以分为:发表新帖的时间或者对帖子的新回复的时间

    (8)帖子的排序问题:置顶帖(在最上面)、精华帖和普通帖按照状态的更新时间来排序:如何将置顶帖分为一类,精华帖和普通帖为一类。这里使用了CASE WHEN THEN ELSE END 这个判断语句。

    (9)楼层的问题:1楼为沙发,2楼为板凳,3楼为地板。

    利用status可以直接实现楼层数量增加,发表一个新回复就增加一楼。

     <s:iterator value="#forumList" status="status">

    这里面有status属性:这里面封装了很多东西:

    status里面有first和last,还有count计数,利用这个计数可以实现楼层的增加。

    3、论坛模块的实体设计

    关于实体的设计其实是在需求分析的时候进行的,所以说一个软件的需求分析是很重要的。

    大题分为几步吧:

    (1)确定有多少个实体(可以进行CRUD的就可以是一个实体)

    (2)确定实体的属性:

    这个又细分为几部分:

    a:   id主键不能忘;

    b: jsp页面(尤其是添加信息页面是相对比较全面的,但是也有很多隐含信息);

    c:  实体间的关系是怎么样的:一对多,多对多,还是多对一,还是一对一。(至于单向关联和双向关联这个不用太纠结。双向关联是在配置中两边都写的,单向关联是只写一边的配置。任何时候都可以是双向关联,如果不确定就使用双向关联,如果确定一方用不到就使用单向关联)。另外一对一是多对一的一种特殊情形,只要加上unique这个属性即可。

    这些关系一般在实体的属性中也要写,多的话用set集合,一的话直接使用该类即可。

    d: 还有一部分我们称之为特殊字段:这类字段很不明显,有时候在进行编写代码的时候才会发现,这个需要长时间的积累分析。

    4、论坛中:用户浏览、发帖、回帖功能设计

    其实代码写多了就无非是增删改查的变形记,只不过在业务上面如何进行条件查询,如何在添加的时候考虑到额外的一些内容。这些还是需求分析的强大之处。

    另外SQL的查询也很关键,有时候为逻辑省去很多麻烦。所以要重视查询。

    5、FCKeditor的使用:

    这个跟富文本编辑器的使用是一样的:

    (1)首先在页面导入该编辑器的js文件,并且该编辑器使用的文件放到目录下。

    (2)找到该编辑器的帮助文档;将一段js代码拷贝到页面

    (3)注意:这里的路径一定要配置正确。

  • 相关阅读:
    父子进程 signal 出现 Interrupted system call 问题
    一个测试文章
    《淘宝客户端 for Android》项目实战 html webkit android css3
    Django 中的 ForeignKey ContentType GenericForeignKey 对应的数据库结构
    coreseek 出现段错误和Unigram dictionary load Error 新情况(Gentoo)
    一个 PAM dbus 例子
    漫画统计学 T分数
    解决 paramiko 安装问题 Unable to find vcvarsall.bat
    20141202
    js
  • 原文地址:https://www.cnblogs.com/fengli9998/p/6592839.html
Copyright © 2011-2022 走看看