提问人:Eli 提问时间:3/25/2009 更新时间:3/8/2012 访问量:9972
MySQL 和 Filemaker Pro?
MySQL AND Filemaker Pro?
问:
我有一个客户想在他们的办公室里使用 Filemaker 做一些事情,并可能让我构建一个 Web 应用程序。
我上一次使用、考虑甚至听说过 Filemaker 是在大约 10 年前,我似乎记得我不想将它用作复杂 Web 应用程序的后端,所以我正在考虑尝试在 MySQL 上销售它们。
但是,他们的Filemaker数据库会与MySQL通信吗?知道如何最好地从Filemaker中说服他们吗?
答:
你可能很难说服他们离开FileMaker,因为它实际上是一个非常聪明的工具,用于制作小型的内部数据库应用程序,并且它有一个非常忠实的用户群。但你是对的——它不是制作 Web 应用程序的好工具。
我与仍在使用自定义 dBase IV 应用程序的客户遇到了类似的问题。幸运的是,Perl 的 CPAN 存档有用于与任何内容通信的模块。因此,我编写了一个脚本,每天晚上导出整个 dBase IV 数据库,并将其作为一组只读表上传到 MySQL 中。
不幸的是,这需要每晚关闭 MySQL 30 分钟。(这是一个很大的数据库,我们必须将自由格式的文本转换为 HTML。因此,我们切换到 PostgreSQL,并将整个数据库更新作为单个事务执行。
但是,如果您需要对 FileMaker 数据库进行读写访问,该怎么办?在这种情况下,您有几个选择,其中大多数都不好:
- 构建双向同步工具。
- 完全摆脱FileMaker。如果客户端的 FileMaker 数据库是微不足道的,这可能相对容易。首先,我会为他们最重要的数据库编写一个快速而肮脏的克隆,并在 Web 浏览器中向他们演示。
- 实际上,基于 FileMaker 的 Web 应用程序可能最好为客户端提供服务。如果是这样,请将其推荐给 Google。
但是,您如何在给定的选择上向客户推销呢?最好列出每个选择的成本和收益,让客户决定哪个最适合他们的业务。你可能会失去这份工作,但你会保持诚实建议的声誉,而且你不会参与一个不适合你的客户的项目。
我一直在解决类似的问题,并找到了一些 emk 没有提到的解决方案......
- FileMaker 可以链接到外部 SQL 数据源 (ESS),因此您可以使用 ODBC 连接到 MySQL(或其他)数据库并共享数据。您可以在此处找到更多信息。我们尝试了一下,发现说实话它很慢
- Syncdek 是一款声称允许您在 Filemaker、MySQL 和其他结构化来源之间执行数据复制和数据传输的产品。
- 可以将 Filemaker 的 Instant Web Publishing 用作 Web 服务,然后您的 App 可以通过该服务推送和拉取数据。我们在 python 和 php 中找到了几个包装器
- 您可以在 FileMaker 数据库中放置一个触发器,以便每次更改记录(或您感兴趣的记录的一部分)时,您都可以调用一个 Web 服务来更新您的网站可以访问的该数据的 MySQL 或 memcached 版本。
我发现人们喜欢 FileMaker,因为它为他们提供了一个非常可视化的数据界面——在没有太多开发知识的情况下,很容易制作相当大的独立应用程序。但是,当涉及到与许多用户协作或以 FileMaker 应用程序以外的格式呈现这些数据时,我们发现性能是一个真正的问题。
我们使用 FileMaker 和 PHP/MySQL 开发解决方案。我们的建议是在 Web 应用优化技术(如 MySQL)中执行 Web 应用。
话虽如此,FileMaker 确实有一个可靠的 PHP API,因此如果 Web 应用程序有相对轻量级的需求(例如在内部使用),那么使用它并省去同步的麻烦。
FileMaker 的 ESS 技术让 FileMaker 使用 SQL 数据库作为后端数据源,这为您提供了 2 个选项:
使用 ESS 作为在 FileMaker 中进行同步的一种很好的紧密方式 - 这样,您就可以在 FileMaker 解决方案本身中使用“原生”数据源。
使用 ESS 允许 FileMaker 直接在 MySQL 表上用作报告/数据挖掘/临时查询和编辑工具 - 它很有效。
我们发现,在FileMaker中使用ESS/MySQL后端构建一个复杂的应用程序是非常棘手的,因此,从上面选择1个还是2个取决于FileMaker使用的复杂程度和繁重程度。
否则,SyncDek 作为自动化同步的第三方解决方案享有盛誉。
上一个:JQuery 选择框和循环帮助
下一个:国际电话和地址数据?
评论