【产品设计】ToB 增删改查显算传

入职培训时技术leader说:“我不需要你们太聪明,做好基础的增删改查就可以了。”看似很简单的活,要做好并不容易。基础的坑在哪里呢?

一、 增(新增、创建、导入)

1. 明确表字段类型

新增的业务是由不同类型的字段组合而成,每个字段具体的类型应该给出明确定义,这关系到数据库字段存取的设计、后台逻辑的编写以及前端页面的数据输入方式以及展示形式。

常用表字段:

  • 文本(中文文本、英文文本等,可统一定义为字符串)
  • 数字(整数、小数、正负数、阿拉伯数字、中文数字、罗马数字等)
  • 时间、日期(yyyy-MM、yyyy-MM-DD、yyyy-MM-DD hh:mm:ss、hh:mm:ss、hh:00等)
  • 字典表(一般用于定义业务状态,如结算状态字典可定义“待结算”、“已结算”)

表字段信息说明:

  • 字段必填、非必填;强业务关联的数据或者其他必要信息设为必填字段;
  • 字段唯一性;唯一的字段组合设置为表结构的主键;
  • 字段长度;表字段长度的限制,主要是为了合理分配客户端的内存资源;
  • 字段的默认值;对于固定确认的数据,可设置默认值,减少操作员的数据录入工作量;
  • 字段校验;例如手机号、身份证号码、银行卡格式标注校验,可根据业务情况说明校验规则;
  • 选项型,说明单选、多选;
  • 专有名词解释说明,业务场景描述,协助开发人员理解文档。

输出结果如图一、图二:
在这里插入图片描述
在这里插入图片描述
小结:

有的项目组可能会要求产品经理进行初级的表结构设计,即以上说明的内容,专业部分的内容由DB进行设计完善。这样做有利于产品经理明确字段的含义,理解表字段的存取路径,设计逻辑,能更深程度的参与到项目开发与沟通协调中。

2. 准确使用信息输入的方式

表字段的类型不同,信息的输入方式对应会有差别(如图三)。若前端页面运用错误的输入样式,则会导致新增报错,业务流程无法继续。

例如应该是下拉选择的字典值,运用了手动填写的文本框,必然会出现人为填写错误,与数据库字典表无法匹配的bug。
在这里插入图片描述

3. 设置合理的图片限制

新增业务中,上传图片是很常见的需求。考虑到图片的上传、加载速度,兼容问题,需要对图片的大小、格式进行限制说明。

常规的图片格式包括:jpg、png、gif、bmp、gif,大小限制在500k~2M范围内。

如图四:
在这里插入图片描述

4. 设置及时完善的错误信息提示

用户输入的过程中,需要对填写的信息有及时全面的反馈,例如必填字段漏填、有格式校验的数据填写错误等,如图五:
在这里插入图片描述

5. 提高长表单的处理效率

  • 对于较长的表单,流程分步操作,减轻用户的认知负荷和心理压力;
  • 对于相关的信息进行合理分组展示,高效填写;
  • 采取高效填写的方式,避免出错;例如银行卡扫码、拍照识别;小结:新增是业务开始的第一个环节,数据进入系统的源头。若新增不顺畅或者总是报错,会导致业务流程顶部断层无法继续、用户体验感极差,甚至有可能会导致项目验收失败。

二、删除(删除、取消、禁用、停用)

数据有新增的路径,就会存在删除的需求。

通常说的删除,包含两种:

  1. 物理删除:真实删除,从数据库层面删除了数据,查询找不到该条数据,数据不可恢复;一般对于重要的基础数据,不建议设置删除功能,设计中要避免不可逆的操作;
  2. 逻辑删除:假删除,只是从页面对数据进行了删除,数据库将数据的状态改写为“已删除”,可通过删除后撤回或者数据库备份恢复,产品设计中比较常用。

数据的前后业务关联太强,不适合设计删除功能,那应该如何对数据进行合理的处理呢?

个人理解的删除需求的存在,可能存在以下几种情况:

  • 过期无用信息:可以设计数据库定时任务,根据实际的业务情况和指定条件,定期清理垃圾数据,适用于数据量较大的情况;
  • 信息录入错误:逻辑删除或者使用编辑功能修改数据;
  • 数据状态改变,或需要中止业务:使用字典状态来限制。

最后一种情况,笔者做的TMS物流运输系统中,客户曾提出过这样的需求:车辆出现故障或者正常维修停运,而业务人员在创建订单的时候,可能还是会选到这辆车。对于这种车,我们要在系统中进行删除,以免误选(典型的伪需求)。

经过实际的业务分析,发现直接删除车辆信息会有几个问题:

  1. 车辆维修保养结束后,需要操作员再次填写车辆信息,用户体验差且浪费人力资源;
  2. 车辆的维修保养比较常见,若操作员未及时补录恢复运营的车辆,会对运输业务产生影响;
  3. 车辆的运输里程涉及到财务的结算支付,若删除会需要写大段的逻辑代码来判断车辆关联的业务情况,以及财务结算状态,开发工作量大。

最终处理结果:

设计车辆停用功能,保存车辆的基本信息,维修结束后恢复运营状态;停用期间数据封装,不影响还未结算完的财务数据。

类似的数据需要暂停业务,后期可能需要恢复的,可以采取【删除后撤销】、【停用】、【禁用】等假删除形式进行处理。

小结:

根据业务状况确认信息是否允许删除;允许删除的数据,需要进行二次确认提示,降低误删的可能性。

三、改(修改、编辑、批量修改)

新增的数据维护错误或者业务发生变动,可能会需要修改。

1. 修改的形式

点击列表按钮,进入二级页面/弹窗修改。
在这里插入图片描述
在列表单元格内直接编辑修改。
在这里插入图片描述
列表内嵌子表格编辑修改,不常用,适用于需要小面积修改的信息。
在这里插入图片描述
大范围的数据变动,导入表格批量修改。

数据出错,页面无法修改,进入数据库直接修改数据(很少见,且不建议)。

2. 修改注意事项

  • 页面明确区分允许可编辑和不可编辑的内容;
  • 构成数据唯一性的字段不允许修改;
  • 完成认证闭环的数据不允许修改;例如强制实名认证的信息完成后不允许修改;
  • 修改保存后,二次弹窗确认;
  • 长表单分步骤录入的信息,选择单独模块编辑修改;
  • 长表单信息修改设定本地缓存机制,避免网络中断等原因需重新编辑上传数据;
  • 强业务关联的数据,需要确认修改后是否对其他模块列表数据关联变更;
  • 敏感数据提供修改日志;
  • 不同用户的修改权限设定。

3. 批量修改

  • 批量修改应定义数据唯一性的标记;例如批量修改员工信息,可能存在姓名相同的情况如果只判断导入的修改模板,只要姓名相同而其他数据不同,则修改数据,会导致修改失败或者其他后果;
  • 批量修改导入了重复数据,应明确是直接覆盖源数据后导入,或提示修改模板后重新导入,或直接跳过重复数据。

四、查(查询、搜索)

合理的查询条件和样式的设计,有助于用户快速准确的找到需要的信息。

常用的查询方式有:

1. 同步查询、组合条件查询

设置默认查询条件,常用有默认查询日期、默认状态查询,有助于用户快速获取需要的信息。
在这里插入图片描述

2. 精准查询 or 模糊匹配;

精准查询适用于字段简短准确的数据,用户记忆成本高于模糊匹配,而后者是查询中比常用的形式。

例如根据身份证号码查询用户信息,只需要输入1991,则查询出列表中所有包含1991的身份证数据,可能查询出来的结果为:4280861996054212或者4758261991024483。

按状态值快速过滤,业务流程类比较常用。
在这里插入图片描述
自定义设置查询条件;展示高频查询条件,低频查询条件按钮收起隐藏,且允许自定义设置查询字段。
在这里插入图片描述
提供查询历史记录,有必要的情况下可根据历史查询词条的热度进行排序。

3. 定时器任务查询

比较专业的范畴,请教了一下开发同学, 我们一般说定时器是指,按照某个特定的时间间隔执行某一段命令(无法深入说明了,抱歉);

笔者项目中目前只运用过定时器请求银行流水,查询余额,有机会可以写一下。

4. 查全局 or 查局部 ?

考虑到数据的安全性问题,可能有些产品设计上会限制查询的界限,限制查询出的结果只展示部分数据。

例如设置某些用户只能查询特定条件下的数据,获取过滤后的数据量。

五、显(显示、回传、列表样式)

后台系统的数据和业务流程,90%以表格的形式展示出来,显示样式是否合理,直接关系到用户对产品的第一印象和日常使用体验。

网上已经有很多优秀的文章专门讲解后台表格设计的样式及使用场景,这里只简要说明一下。

列表按照功能区域,可划分为筛选区、操作区、表头、正文、分页。
在这里插入图片描述
【筛选区】主要用于设置数据的筛选条件,进行搜索;已经详细说明过查询,不再赘述。【操作区】主要用于对数据进行功能性的操作,常见的有增删改查、业务功能等。

  • 操作按钮较多,建议按照业务的流程排布,避免用户需要不停调转视线寻找按钮;
  • 相同的功能划分合理,收起在一个菜单按钮中,避免功能太多,用户要在界面寻找按钮的情况。
  • 例如【设置服务费率】和【查看服务费率】属于同一个功能区域,可以设计成下拉展开的形式;
  • B端系统的设计,要有堆积木的概念,功能与功能之间,最好是独立的,不互相牵扯;一个按钮代表一个功能操作。

【表头】概括表格要展示的字段信息以及排序、自定义展示字段。
在这里插入图片描述
有必要的情况下,可以添加浮窗文本对字段进行解释,协助用户理解字段含义。
在这里插入图片描述
数据列比较长的情况下,冻结表头,方便内容对应字段。
在这里插入图片描述
信息层级区分,同类型的数据表头合并单元格。
在这里插入图片描述
【正文】展示具体的数据内容;正文内容的注意要点有:

数字,一般展示小数点后两位,右对齐展示,减轻用户计算的压力,可以根据数字串的长度很直观的辨别数字的大小;特别是货币类数字的展示。

对齐,可比较的字符串右对齐,固定长度的字符串居中对齐,其他文本类型字符串可选择对齐。

时间格式,补充数字“0”让文本对齐。
在这里插入图片描述
空白,没有数据的单元格用“—”符号占位,保持视觉的统一性。

分割,常见表格式分割、横向分割(专注行数据)、纵向分割(专注列数据)、无线条分割(数据量少,干扰信息少,信息页面简洁)、斑马线展示(方便用户定位当前查看的数据行);大家可以对比不同分割样式在视觉上的引导作用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
信息层级,常见的有任务分级或权限分配类采用树状结构进行信息层级的划分。
在这里插入图片描述
在这里插入图片描述
列表中的数据是对增删改等操作之后的回传结果,如果前端接口对错或者字典取错,很容易导致页面或者单元格数据为空,更有可能会出现奇形怪状的数据。

在项目验收的时候,一定多多留意列表的回显字段,常用F12协助测试及开发人员排查bug原因。

小结:

个人认为excel玩的溜的,表格设计基本妥了。特别是可视化数据展示,excel的各种精美模板可是唾手可得的优秀学习素材。

【分页】分页的样式很多,功能总结为:

  • 列表的总数量;
  • 每个页面展示的数量条数;
  • 当前所处页面;
  • 进入上一页下一页首页末页;
  • 直接跳转到指定页面。
    在这里插入图片描述
    结语:

标题定的增删改查显算传,实际上算法和传输,都属于比较专业的范畴,希望以后有机会能深入接触,补上这个坑。毕竟现在也是产业互联网化、数字化的时代,学些数据算法、传输技术总没错。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PHP是一种流行的开源编程语言,常用于Web开发。在PHP中,我们可以使用各种方法来实现增删改查操作,并且还可以使用其它库来导出Excel文件。 首先,我们可以使用SQL语句执行增删改查操作。PHP提供了一组用于与数据库交互的函数和类,如mysqli和PDO等。我们可以连接到数据库,执行插入、更新和删除等操作,以及执行查询操作,并将结果返回到PHP脚本中进行处理和展示。 对于导出Excel文件,我们可以使用PHPExcel库。该库提供了一组丰富的功能,可以创建和操作Excel文件。我们可以使用该库创建一个Excel文件,设置头部信息和数据内容,并将其保存到服务器或直接下载到客户端。 以下是一个简单的示例,演示了如何使用PHP实现增删改查和导出Excel的操作: 1. 增加数据: ```php // 连接数据库 $conn = new mysqli("localhost", "username", "password", "dbname"); // 执行插入操作 $sql = "INSERT INTO table_name (column1, column2, column3) VALUES ('value1', 'value2', 'value3')"; $conn->query($sql); // 断开数据库连接 $conn->close(); ``` 2. 删除数据: ```php // 连接数据库 $conn = new mysqli("localhost", "username", "password", "dbname"); // 执行删除操作 $sql = "DELETE FROM table_name WHERE condition"; $conn->query($sql); // 断开数据库连接 $conn->close(); ``` 3. 修改数据: ```php // 连接数据库 $conn = new mysqli("localhost", "username", "password", "dbname"); // 执行更新操作 $sql = "UPDATE table_name SET column1 = 'new_value' WHERE condition"; $conn->query($sql); // 断开数据库连接 $conn->close(); ``` 4. 查询数据: ```php // 连接数据库 $conn = new mysqli("localhost", "username", "password", "dbname"); // 执行查询操作 $sql = "SELECT * FROM table_name"; $result = $conn->query($sql); // 处理查询结果 if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { // 处理每一行数据 } } // 断开数据库连接 $conn->close(); ``` 5. 导出Excel文件: ```php // 导出Excel文件 require_once 'PHPExcel.php'; $objPHPExcel = new PHPExcel(); // 设置Excel头部信息 $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Column 1'); $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Column 2'); $objPHPExcel->getActiveSheet()->setCellValue('C1', 'Column 3'); // 设置Excel数据内容 $objPHPExcel->getActiveSheet()->setCellValue('A2', 'Value 1'); $objPHPExcel->getActiveSheet()->setCellValue('B2', 'Value 2'); $objPHPExcel->getActiveSheet()->setCellValue('C2', 'Value 3'); // 保存Excel文件 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('file.xls'); ``` 以上就是使用PHP实现增删改查和导出Excel的一些基本操作方法。根据具体需求,我们可以使用更复杂的SQL语句和PHPExcel库的更多功能来实现更强大的操作。 ### 回答2: PHP是一种常用的服务器端脚本语言,非常适合用于增删改查等数据库操作,并且很容易实现导出Excel功能。 在PHP中,我们可以使用MySQLi或PDO等扩展来连接数据库进行数据的增删改查操作。对于增加(Insert)、删除(Delete)、修改(Update)数据非常简单,只需要使用对应的SQL语句即可。 例如,对于增加数据: ```php $conn = new mysqli($servername, $username, $password, $dbname); $sql = "INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')"; if ($conn->query($sql) === TRUE) { echo "新记录插入成功"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ``` 对于删除数据: ```php $conn = new mysqli($servername, $username, $password, $dbname); $sql = "DELETE FROM users WHERE id=1"; if ($conn->query($sql) === TRUE) { echo "记录删除成功"; } else { echo "Error deleting record: " . $conn->error; } $conn->close(); ``` 对于修改数据: ```php $conn = new mysqli($servername, $username, $password, $dbname); $sql = "UPDATE users SET email='johndoe@example.com' WHERE id=1"; if ($conn->query($sql) === TRUE) { echo "记录更新成功"; } else { echo "Error updating record: " . $conn->error; } $conn->close(); ``` 除了增删改查之外,导出Excel也非常简单。我们可以使用PHPExcel等第三方库来实现。 例如,导出Excel数据: ```php require_once 'PHPExcel/Classes/PHPExcel.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Name'); $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Email'); $conn = new mysqli($servername, $username, $password, $dbname); $sql = "SELECT * FROM users"; $result = $conn->query($sql); $rowCount = 2; while($row = $result->fetch_assoc()) { $objPHPExcel->getActiveSheet()->setCellValue('A' . $rowCount, $row['name']); $objPHPExcel->getActiveSheet()->setCellValue('B' . $rowCount, $row['email']); $rowCount++; } $conn->close(); $objPHPExcel->getActiveSheet()->setTitle('Users'); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="users.xlsx"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); exit; ``` 以上就是使用PHP进行增删改查和导出Excel的简单示例。PHP提供了丰富的数据库操作功能和众多扩展库,让我们能够轻松地进行各种数据库操作和数据处理。 ### 回答3: PHP是一种非常流行的后端编程语言,可以很方便地实现数据库的增删改查操作以及导出Excel文件。 首先,对于数据库的增删改查操作,可以使用PHP的数据库扩展(如mysqli或PDO)来连接数据库,并使用相关函数实现。 对于增加(INSERT)操作,可以通过执行SQL INSERT语句向数据库中插入新的数据记录。 对于删除(DELETE)操作,可以通过执行SQL DELETE语句从数据库中删除指定的数据记录。 对于修改(UPDATE)操作,可以通过执行SQL UPDATE语句更新数据库中指定的数据记录。 对于查找(SELECT)操作,可以通过执行SQL SELECT语句从数据库中获取符合条件的数据记录。 在PHP中,可以使用相关的数据库函数(如mysqli_query或PDO::query)执行SQL语句,并通过结果返回来获取执行结果。 对于导出Excel文件,可以使用PHP的第三方库(如PHPExcel或PHPExcelWriter)来创建和操作Excel文件。 首先,可以在PHP中引入相关的Excel库,并创建一个新的Excel对象。 然后,可以使用Excel对象中的方法来添加工作表、设置单元格内容和样式等。 最后,可以使用Excel库提供的导出方法,将Excel文件保存到指定的路径上。 需要注意的是,确保服务器上已经安装并启用了Excel库,并且对于导出文件的路径,需要给予足够的文件写入权限。 综上所述,使用PHP实现数据库的增删改查操作以及导出Excel文件的方法可以简要归纳为:连接数据库并执行相关的SQL语句完成增删改查操作;引入Excel库并创建一个Excel对象,通过添加工作表,设置单元格内容和样式等操作生成Excel文件;最后,使用Excel库提供的导出方法将文件保存到指定路径上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值