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