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)注意:这里的路径一定要配置正确。

OA项目中的论坛模块设计与实现的更多相关文章

  1. maven 单独构建多模块项目中的单个模块

    maven 单独构建多模块项目中的单个模块, maven选项说明 -pl, --projects Build specified reactor projects instead of all pro ...

  2. Maven单独构建多模块项目中的单个模块

    Maven单独构建多模块项目中的单个模块   说明: 1.可能存在的场景,多模块项目没有互相引用,那么此时可以单独构建单个项目,指定到子模块的pom.xml文件即可完成编译. 2.如果多模块项目各自都 ...

  3. Android项目中的各个模块框架设计

    作为Android开发,现对项目开发中的各个模块搭建,梳理如下: Android UI框架,开发人员需要达到专家级 网络框架 浏览框架 图片加载框架 图片裁剪压缩工具类 客户端并发框架 线程池设计 ( ...

  4. 结合manage.py,在flask项目中使用websocket模块--- flask-socketio

    前言:       - 为什么我要使用 flask-socketio模块,而不是flask-sockets?       - 因为flask-socketio与前端流行的websocket库socke ...

  5. vue踩坑记-在项目中安装依赖模块npm install报错

    在维护别人的项目的时候,在项目文件夹中安装npm install模块的时候,报错如下: npm ERR! path D:\ShopApp\node_modules\fsevents\node_modu ...

  6. 校园电商项目2(基于SSM)——模块设计

    步骤一:各模块职责 步骤二:实体类设计 package com.figsprite.o2o.bean; import java.util.Date; public class Area { priva ...

  7. Springboot Maven 多模块项目中 @Service跨模块引用失败的问题

    子模块中引用另一个子模块中的Service, @Autowired失败. 添加了模块之间的依赖没解决. 组以后在启动类上加上 @SpringBootApplication(scanBasePackag ...

  8. 鸿雁电器oa系统中决策支持模块效果

    公司简介鸿雁电器是国内著名的建筑电器产品的生产.经营企业,同时也是国家863计划CIMS(计算机集成制造系统)应用工程示范企业.浙江省高新技术企业.浙江省专利示范企业和杭州市信息化试点企业.企业系统泛 ...

  9. 关于项目中下单流程HTML设计的一些思考

    需求 上面文字和圈圈是对齐的. 想法 一开始是想把文字和圈圈分开来的,也就是两个盒子放置.但操作中发现,想把它们对齐非常的难,总有一些是无法对齐的. 最终换了一种实现方式,按照需求,不就是想把它们关联 ...

随机推荐

  1. shell基础 -- 入门篇

    shell 英文含义是“壳”,这是相对于内核来说的,shell 也确实就像是内核的壳,通常来说,所有对内核的访问都要经由 shell .同时,shell 还是一门功能强大的编程语言.shell 是 L ...

  2. 【dp】New Keyboard

    http://codeforces.com/gym/101397 B dp[i][j][k]: i为前一个行动的状态,0-switch.1-type,j为当前状态layout的编号,k 是已键入的字符 ...

  3. DP----入门的一些题目(POJ1088 POJ1163 POJ1050)

    动态规划入门 DP 基本思想 具体实现 经典题目 POJ1088 POJ1163 POJ1050 (一) POJ1088,动态规划的入门级题目.嘿嘿,连题目描述都是难得一见的中文. 题目分析: 求最长 ...

  4. 《剑指offer》--- 两个链表的第一个公共结点

    本文算法使用python3实现 1. 问题   输入两个链表,找出它们的第一个公共结点.   时间限制:1s:空间限制:32768K 2 思路描述   使用两个指针 $ p1,p2 $ 分别指向两个链 ...

  5. 使用字符界面 qemu-kvm 创建虚拟机

    qemu-kvm的基本用法:指定系统类型,CPU运行模式,NUMA(Non Uniform Memory Access Architecture), 软驱设备,光驱设备,硬件设备   # 查看qemu ...

  6. NFS 它的目的就是想让不同的机器、不同的作业系统可以彼此分享个别的档案啦

    NFS即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件, ...

  7. 【第二周】Java实现英语文章词频统计(改进1)

    本周根据杨老师的spec对英语文章词频统计进行了改进 1.需求分析: 对英文文章中的英文单词进行词频统计并按照有大到小的顺序输出, 2.算法思想: (1)构建一个类用于存放英文单词及其出现的次数 cl ...

  8. 【week10】规格说明书练习-吉林市1日游

    假设我们全班同学及教师去吉林省吉林市1日游,请为这次活动给出规格说明书. 版本:1.0 编订:于淼 团队:2016级计算机技术全体同学 日期:2016/11/19 1.引言 1.1 编写目的 1.2 ...

  9. Cmder命令行工具在Windows系统中的配置

    一.Cmder简介 Cmder:一款用于Windows系统中,可增强传统cmd命令行工具的控制台模拟器(类似于Linux系统中的终端控制窗口) 特点: 无需安装,解压即用 可使用较多Linux命令,如 ...

  10. JMeter脚本增强之集合点

    集合点的概念:用于实现所谓并发操作,如果集合点设定是10个人,那么所有的用户就会在同一条起跑线上等着后面的人,等10个人到齐了就哗地一下全部跑出去执行同一个动作.如果设置了超时,那么过了超时时间,有可 ...