[编辑:我已授予赏金但未授予问题,因为我觉得仍有机会获得更好的答案。]
我通常用 php 编写我的 MySQL 数据输入接口。
但是对于我想专注于 Web 端(从数据库中提取数据)的快速项目,我正在寻找MySQL 的表单前端。理想情况下,这将是一个现成的 Win 或 OSX 程序,我可以将其交给朋友或客户,以便她可以将数据输入表单。
一个例子
上面的几行总结了这个问题,但这里有一个典型的情况来展示为什么“只给他们 phpMyAdmin”或 MySQL 的其他一些 Web 界面通常不起作用。
我们有两个主要表格:图像和相册。第三个是将图像与相册相关联的关联表。
图片: id (PK)、文件名
专辑: id(PK),专辑
Album_Image: id (PK), imageid, albumid(这些是外键:Images 和 Albums 表中的两个 id PK)
对于大型项目,我不介意编写一个不错的“后端”界面 (CRUD),它可以让我以非常舒适的自定义方式编辑数据。
对于小型项目,例如朋友的图片库,我希望能够只对“前端”进行编程:从数据库中提取数据的 Web 界面。对于后端,理想情况下,我想给我的朋友一个现成的解决方案,这样她就可以输入图像、相册以及图像和相册之间的关联。在过去(我想到的是 DBaseIII),提供接口来做这方面的事情真的很容易。
这是我尝试过的粗略方法。我已经设置了一个关联表的视图,该关联表连接到父表,因此它使用以下查询显示了专辑、imageid(PK)和专辑、文件名(父表中的关联字段):
SELECT albumid, imageid, album, filename FROM album_image axi
JOIN albums a ON a.`id` = axi.`albumid`
JOIN images i ON i.`id` = axi.`imageid`
这种粗略方法的想法是,我的朋友将通过视图在关联表中输入父 PK(albumid 和 imageid),并且在点击插入后,完整的父字段(文件名和专辑)将在视图中可见视觉反馈。我在三个 GUI 工具中尝试过这个视图:SQLyog (Win)、HeidiSQL (Win) 和 Sequel Pro (OSX)。
在 Heidi 和 Sequel Pro 中,我还没有找到编辑视图的方法。
在 SQLyog 中,我可以在视图中编辑 PK 字段(albumid 和 imageid),当我点击“刷新”时,父字段(专辑和文件名)会正确显示。那太棒了。它之所以有效,是因为即使视图显示了三个表,我们也只是从一个表中进行编辑。但是我不能删除一行,因为 SQLyog 不知道我们要从三个表中的哪一个表中删除。另一方面,在 SQLyog 中,我能够在包含创建视图的相同查询的查询选项卡中插入和删除,因为在这种选项卡中 SQLyog 允许我选择正在编辑的表。这样可行,但是对于我的朋友来说,这个工作流程可能开始有点复杂:她必须打开 SQLyog、连接、打开保存的查询、选择要在查询中编辑的正确表,然后进行所有其他正确的操作。
想知道是否有人知道一个非常擅长为 MySQL 制作表单的现有工具——最好是 Windows 或 OSX 二进制文件。我会考虑一个 web 解决方案,但我对框架不感兴趣——关键是部署速度,如果我们走框架路线,我最好用我自己的 CRUD 库制作接口。同样,我可以编写代码,但我对这类“快速项目”的目标是将工作量集中在前端(数据库的 Web 界面),而将后端留给现成的工具。
提前感谢您的任何见解。:)
编辑:我看到没有人提到 Navicat 或 MySQL Workbench。我也没有尝试过,想知道是否有人知道他们是否会这样做。