7

假设您有一个数据库,其中包含大约 200.000 行的最大表,并且经常被修改。客户希望 Excel 通过 ODBC 连接到数据库,并作为前端来管理数据。数据最多可以同时被 25 个用户修改。

我的第一直觉是推荐其他东西,例如 Web 前端。但是假设客户坚持使用 Excel 解决方案,你认为它是可行的,你会从中看到什么陷阱?

我的疑问是:

  1. 数据完整性(如何管理同时修改相同数据的用户)
  2. 大量数据不必要地移动(打开 Excel 工作簿时,我想必须传输整个数据库)
  3. 安全性(以安全的方式仅向适当的用户显示部分数据将具有挑战性 - 请参阅前一点)
  4. 使用工具(Excel)做某事,但它并不擅长(请原谅双关语)
4

2 回答 2

5

我一直这样做。不,您不必引入整个数据库甚至整个表。我使用 ADO 和 VBA 并通过 Command 对象发送 SQL 语句。例如,我有一个带有 Excel 前端的版税数据库。

用户键入发票编号,SELECT 语句检索该记录并填充一些自定义类。用户输入/修改一些数据并单击“保存”。然后该类有一个方法可以根据情况使用 UPDATE 或 INSERT 将记录写回数据库。

在月底,用户输入一个日期范围并将一些记录检索到报告中,同样只是一个 SELECT 语句填充一些类并输出到工作表。

使用事务,以便在遇到任何记录锁定问题时可以回滚,但如果有 25 个用户,您可能不会。

于 2010-02-19T14:53:08.263 回答
2

乍一看,我建议将 Excel 视为网页,即只提取所需的数据并使用特定的表单进行编辑,通过 ADO 一次更新一条记录。您只需要锁定一条记录,并锁定更新所需的一小部分时间。您可以检查记录在打开进行编辑后是否已更改,并且可以告诉用户他们无法打开记录进行编辑,然后将其留在编辑表单中,否则他们可能会丢失更改。

这么小的一个群体通常不太可能需要同时更改同一个记录。

我认为 25 个并发用户不会有太大问题。

于 2010-02-19T12:04:24.037 回答