[分析与设计]二手房房屋图片功能需求分析与设计

业务需求


  1. 中介从业用户发布二手房房源信息,要求能够上传房源图片,房源图片控制在8张。
  2. 发布过程中,为了避免用户使用失误,要求房源图片上传后且在房源其他信息尚未提交前,就算不小心刷新页面,上传的图片信息也要能够保留。
  3. 图片上传后要能够立刻在页面上显示缩略图效果。

需求分析


  针对图像文件,我们一般是将其保存在服务器的硬盘中,而非存储到数据库中,仅仅只是把文件的路径保存到数据库中,需要时,再查询后调用即可。所以我们需要设计一张表,用来放图片的基本信息。

  一个房源一般是可以拥有多张图片,同时依据实际业务的限定来说,一张图片正常也只能对应一个房源(避免假房源),所以我们在设计数据库表示,房源与图片应该是一对多的关系。而我们的产品需求面向的是二手房经纪人,一个房源信息在网站上肯定是会重复的,房源与用户的对应关系是多对多的关系。所以为了方便用户管理图片,我们图片资源表也应该与用户建立联系,用户与图片资源的对应关系也应该是一对多的关系。

  正常在网页中,我们都会在同一个页面中完成基本信息和图片上传的任务,但是但是图片上传一般情况是在<input type="file">控件添加文件后,在整个大的表单提交前,就先把图片上传到服务器做处理,所以头像上传是先做的,然后再做普通信息的提交。

  这就有一个问题了:这两个操作是分步进行的,那如何能够将两部分的信息关联起来,并且还要预防中间出现的任何意外状况,比如:

  1. 上传了图片,结果房源中途因其他原因不发布了或以后再发布,这种情况一旦多了,势必造成很多垃圾资源的堆积。
  2. 图片上传之后,网页卡死,不得不刷新页面,刷新后无法获取已经上传的图片信息,导致用户体验下降。
  3. 图片是优先上传的,这意味着房源信息还没建立,自然数据库中房屋ID还没有,那要如何建立图片与房源之间的关联?

功能设计


为了解决一系列的问题,我们可以这么做:

  • 首先:图片上传时,当上传成功后,随即将图片信息写入数据库,数据库结构如下图:

    其中用户ID和房屋ID分别与用户表和房屋信息表建立外键约束(当然其实只要逻辑有控制,数据库中不建立也无妨),房屋ID设置为非必输。当我们上传图片时,因为房屋信息还没有建立,所以此刻我们根本是无法获取房屋ID,但是我们可以获取得到用户ID,这样可以先让我们的图片资源,与用户先做一个关联,这样做关联的好处在于后续我可以对房源信息表单提交时,校验一下用户ID,确保不会出现一些漏洞或风险(篡改他人数据)。
  • 其次:写入数据库成功后,将写入的数据都装入List集合当中,通过Ajax返回前端,然后刷新页面,并且将IMAGE_ID设置到<img>的alt属性当中,把IMAGE_SRC设置到src属性当中,这样就可以把缩略图显示出来了。当然这只是一种办法,我们可以创建一组<input type="hidden">的控件来暂时储存这些数据。用于后续表单提交时,一并再传到后端。
  • 当房源信息表单提交后,后端先将房源信息写入数据库,然后再校验刚才的那些图片信息是否与当前操作的用户ID相同,验证通过后,就可以插入HOUSE_ID到图片信息表当中了。
  • 这样就建立了完整的图片与表单分部上传的机制,保证了信息的完整性和真实性。最重要是能够保证图片资源与房屋资源能够正确的建立起关联。
  • 回顾我们其实还有一点需求没有达成,就是当用户上传后图片结果中断了房源发布,那怎么办呢?其实办法很简单,这只需要通过设置定时任务,比如在夜间跑批的时候,统一的查询数据库中,没有HOUSE_ID的图片信息,既不完整的图片信息,然后就可以根据查询出来的SRC地址,转换成本地硬盘目录,然后再删除它们,删除的方法也有分两种,一种是直接在JAVA中删除文件,还有一种是将文件的路径都保存下来然后写入一个文本当中,接着调用本地命令或脚本,一并删除。我个人比较倾向于后者,我是直觉认为这样效率可能会高一点,但没有做过测试,有兴趣的朋友可以试试。
时间: 2024-09-29 19:43:06

[分析与设计]二手房房屋图片功能需求分析与设计的相关文章

栈和队列----设计一个有getMin功能的栈

设计一个有getMin功能的栈 设计一个具有getMin功能的栈,可以返回栈中的最小的元素,可以使用现有的栈的数据结构,要求pop/push/getMin操作的时间复杂度是O(1). package com.test; import java.util.Stack; /** * Created by Demrystv. */ public class GetMinStack { //定义两个栈,一个存放正常的数据,一个存放最小值 Stack<Integer> stackData = new S

天津地铁出行线路规划项目需求分析与设计思路分析

天津地铁出行线路规划项目需求分析与设计思路分析 项目概要 以下是天津地铁线路总图,本项目的受众可以通过本软件,获得天津市地铁出行最便捷,最快速的线路推荐. 需求分析 实现一个帮助进行地铁出行路线规划的命令行程序. 支持地铁线路的更改,站点更改.取消与添加,以及线路的局部封闭. 支持查询线路的所有站点. 支持查询到某终止站点的途径最少站点的路线. 数据存储结构分析 由于单一的线路表与站点表是无法表示如此复杂的地铁线路情况的. 有多个前驱的站点如:,以及有多个后继的站点如:,这种情况无法只通过这两个

软工网络15团队作业3——需求分析与设计

需求分析 1.访问用户 我们团队计划开发一款以学习英语为目的的微信小游戏,为了了解市场反响和用户偏好,我们通过用户调查问卷的方式来进行用户调研.问卷涵盖了各个年龄阶段的用户,包含了现在流行的各种元素,希望让结果更加客观.以下是舍友进行问卷调查,他认为学习英语对未来是很有帮助的,而且他认为如果能以一种不枯燥的方式来学习就更好了,他对连连看表示出了挺大的兴趣. 用户调查问卷链接: http://1218847.51diaocha.com/manage/questionary/stat/realtim

流程管理中WEB表单开发服务需求分析及设计思路

在流程管理应用中,BPM产品所提供的表单设计工具,主要是面向开发人员的.而一些办公系统产品所提供的表单设计工具,受自身平台限制,无法在大型定制化应用中使用.在此通过对用户需求分析,提出WEB表单开发服务设计思路. 一.需求分析 现如今,在创新与改革社会环境推动下,办公管理系统的管理需求变化已经是常态了,如何让信息系统快速响应支撑管理需求的多变,已经成为使信息化建设和运维人员头痛的事情.特别是在一些大型企事业单位,快速支撑需求更突出.而原有信息系统很难适应这样的需求,必须走创新的路来解决这些需求,

模块管理常规功能自定义系统的设计与实现(19--模块附件的设计[2])

模块附件的设计(2) 上一节中介绍了附件的操作,对于附件我们一般认为都是加在模块的记录之上的.但是客户提出了附件要加在字段上的想法,我考虑了一下,给他解释完全可以用附件的类型来区分这个附件是加在哪个字段之上的,可是他不同意,于是就有了附件加在字段之上的设计(客户真是扩展需求分析的唯一途径). 由于这套系统是完全解释型的,因此加入的这个功能也只需配置一下,然后解释执行就行.经过分析,我在模块字段中加了一个"字段附件"的boolean型的字段.将此字段值置为true,表示这个字段可以加入附

响应式网页设计中的图片处理

响应式网页设计,是一种正在流行的网页开发思想,它是利用灵活可变的栅格系统,令网页的显示模式可以根据访问设备的屏幕尺寸规格而进行自适应.预计2015年的时候,移动端的用户数量将会从目前的8亿,增长到19亿,而这也意味着目前我们为桌面浏览器而设计的网页,将会在他们的手机和平板上呈现出非常糟糕的使用体验. 但是随着实际应用状况的改变,响应式网页设计还是会出现一系列复杂的并发症.本文余下的部分,就是详细阐述如何在响应式网页中安置和处理多媒体元素,诸如图片和视频,最终的目的是帮你做出一个靠谱的网站,能让这

功能需求分析书

功能需求分析书 总共五个界面:登录界面.餐厅管理员主页面.后厨人员主界面.服务员主界面 一.登陆界面 1.要求: 登录界面要有用户登录名(char(30)).用户密码(char(18)).验证码(char(6)) 2.流程图: 功能需求分析书 总共五个界面:登录界面.餐厅管理员主页面.后厨人员主界面.服务员主界面 一.登陆界面 1.要求: 登录界面要有用户登录名(char(30)).用户密码(char(18)).验证码(char(6)) 2.流程图: 3.输入数据 必要数据:用户名.密码.验证码

响应式设计中的图片处理

响应式网页设计,是一种正在流行的网页开发思想,它是利用灵活可变的栅格系统,令网页的显示模式可以根据访问设备的屏幕尺寸规格而进行自适应.预计2015年的时候,移动端的用户数量将会从目前的8亿,增长到19亿,而这也意味着目前我们为桌面浏览器而设计的网页,将会在他们的手机和平板上呈现出非常糟糕的使用体验. 但是随着实际应用状况的改变,响应式网页设计还是会出现一系列复杂的并发症.本文余下的部分,就是详细阐述如何在响应式网页中安置和处理多媒体元素,诸如图片和视频,最终的目的是帮你做出一个靠谱的网站,能让这

ATM自动取款机系统的功能需求分析

1.今天又是一次软件工程课的演讲,要求我们对某一个系统进行需求分析,其中需求分析包括性能需求分析和功能性需求分析,这次我们小组准备没那么充分,对于性能分析上面没做太多介绍,因为我们是花了昨天一晚上的时间做出来的,而我是做PPT,其实我做的不止是PPT,其中用例图和类图都是我画的,搞到我1点多才睡觉,下面就来介绍我们小组的演讲内容:ATM自动取款机系统的需求分析.但是我这篇文章的标题是对于ATM自动取款机系统的功能需求分析,因为我们小组4人对于性能分析没有太多的介绍,只是列出了几点性能方面的东西,