从80个用户收集数据,隐藏其他用户的数据

时间:2012-06-28 11:48:23

标签: database forms ms-office

我的妻子在中型零售连锁店工作。 80个网点中的每个网站的经理都必须为每位员工填写一行绩效信息(总共900个),但不允许查看其他商店员工的数据。

我的妻子目前使用大量电子表格管理这个,因为每个月管理人员都会更改他们想要收集的内容,而他们的IT团队没有资源来更新他们的SAS系统。她必须手动将所有数据编译成1个电子表格进行分析,这非常耗时且容易出错。她最近从20个网点到80个网点不得不这样做,并认为她必须更容易。

是否有一个简单的基于表单的系统,可以利用已经安装的(Microsoft Office和Lotus而不是MSAccess),或者可以从网络驱动器运行。云应用程序被禁止。 Excel的安全性完全错误。单词表单模板可以附加到共享数据源吗?有任何想法吗?

TIA

2 个答案:

答案 0 :(得分:0)

您可以拥有包含所有数据的单个表格,然后创建' shadowtables'在这张桌子上为每个商店。

在MySQL中,这可能是一个'分区表' (我从未使用过这个,所以不确定它是如何工作的)或使用临时表。

然后,您需要实现一种方法,当用户在给定位置(IP地址)登录时,触发器将创建临时表,然后使用该IP地址处的存储的相关数据填充它。

另一种选择(可能更容易)是为每个商店设置一个特定的表,然后在您创建的每个表上授予用户特定的权限。再次,您需要使用triger来填充单个主表格'随着信息的更新,或者您只需发送一个     从outlet1,outlet2 ... outlet80

中选择*

您可以再次决定从上面的select创建临时表,并实现自定义脚本以仅在需要时创建它。 事实上,这可能是我会这样做的。 然后在您的Web界面中有一个按钮来创建临时表,并将其显示给当前用户(前提是他们具有查看所有表所需的权限)。

我不确定Lotus是否能够实现这一点,我不知道它的数据库'解。我知道在Access中做类似的事情并不困难,唯一的缺点是需要处理用户身份(Access本身并不做),我再也不了解Lotus。

根据我的经验,平面文件数据库系统'通常不会以本机方式处理用户权限,而是将其放在界面开发上来处理。

我不确定答案有多大帮助,但是它可能需要您一点点解决方案(即使您最终选择服务器/客户端dbms系统)

答案 1 :(得分:0)

您可以使用Lotus。一个简单的开始:

  1. 使用一个表单和一个视图创建数据库
  2. 在表单上添加您想要的任何字段,但也添加一个计算时间组合的多值字段,类型为“读者”,公式为:

    “[Admin]”:@ Name([CANONICALIZE]; @ userName)

  3. 除了具有管理员角色的人(例如,您的妻子)之外,该视图将仅向每个用户显示用户创建的记录。用户必须每行创建一条记录。

  4. 或者,您可以在数据库中创建一个代理程序,该代理程序从Excel文件中读取数据,并在创建文档时使用READERS字段的值构建文档(记录)。

    如果这是您要发布回复的路线,我会发布一些代码(i)提示用户选择excel文件,(ii)将excel文件数据读入莲花笔记,(iii)实现READERS字段,以查看创建者和管理员角色之间的文档是否保密。

    希望有所帮助。