历史版本2 :多人填报时如何防止内容覆盖 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 问题描述

经常会有用户反映使用填报功能的时候,多人同时填报可能会出现,后填报的覆盖掉先填报的问题。

那么怎么才能实现多人填报互不干扰呢?

1.2 实现思路

其实思路很简单,只需要在数据库表中新增一个主键:填报人ID。

这样就能将不同人填写的内容分别写成新记录,而不是覆盖掉。这边给大家提供了一个示例,让我们一起来看看怎么实现的。

2. 示例编辑

2.1 设计数据库表

以 SQL Server 数据库为例,数据库表中新增 4 个字段,将填报人和订单ID同时设置为主键。如下图所示:

1.png

2.2 设计填报表格

填报时只要填 3 个字段就行,填报人字段是为了防止填报覆盖的,这个后面我们会将它设置成自动填入数据库表中的。

Snag_43b49fdb.png

2.3 设置填报属性

注意这里我们要将填报人字段的值设置为公式$fine_username,这样提交时会将填报者的用户名填写到数据库填报人这个字段中去。 

所以我们需要设置登录才能填报,这样才能用$fine_username获取每个人的用户名

1624518313554546.png

2.4 填报演示

1)将这个报表挂载到决策系统中,让用户先登录再填报。

1624518403128641.png

2)这里用 2 个用户给大家演示下,分别是用户名为 Alice 跟 Lily 的用户。

Alice 先填报:

1.png

Lily 后填报:

2.png

3)她们都提交成功后,数据库表信息如下图,我们可以看到,订单ID是数据库表的一个主键,Alice 和 Lily 都填报了相同的订单ID,但是没有出现覆盖。

正是由于用户名作为联合主键,可以让她们生成各自的记录。

3.png

3. 模板下载编辑

这个模板连接的我本地的 SQL Server 数据库,所以模板下载下来无法正常预览,您可以自己建一个表试试

点击下载模板:订单销量表填报.cpt