5

[编辑:我已授予赏金但未授予问题,因为我觉得仍有机会获得更好的答案。]

我通常用 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)。

  1. 在 Heidi 和 Sequel Pro 中,我还没有找到编辑视图的方法。

  2. 在 SQLyog 中,我可以在视图中编辑 PK 字段(albumid 和 imageid),当我点击“刷新”时,父字段(专辑和文件名)会正确显示。那太棒了。它之所以有效,是因为即使视图显示了三个表,我们也只是从一个表中进行编辑。但是我不能删除一行,因为 SQLyog 不知道我们要从三个表中的哪一个表中删除。另一方面,在 SQLyog 中,我能够在包含创建视图的相同查询的查询选项卡中插入和删除,因为在这种选项卡中 SQLyog 允许我选择正在编辑的表。这样可行,但是对于我的朋友来说,这个工作流程可能开始有点复杂:她必须打开 SQLyog、连接、打开保存的查询、选择要在查询中编辑的正确表,然后进行所有其他正确的操作。

想知道是否有人知道一个非常擅长为 MySQL 制作表单的现有工具——最好是 Windows 或 OSX 二进制文件。我会考虑一个 web 解决方案,但我对框架不感兴趣——关键是部署速度,如果我们走框架路线,我最好用我自己的 CRUD 库制作接口。同样,我可以编写代码,但我对这类“快速项目”的目标是将工作量集中在前端(数据库的 Web 界面),而将后端留给现成的工具。

提前感谢您的任何见解。:)

编辑:我看到没有人提到 Navicat 或 MySQL Workbench。我也没有尝试过,想知道是否有人知道他们是否会这样做。

4

7 回答 7

5

我认为您正在寻找的是 MySQL 的表单前端

由于听起来您对二进制文件比对 Web 应用程序更感兴趣,因此您是否研究过 Microsoft Access?它可以与 MySQL 对话,可能正是您所需要的。

Open Office Base 可能没有您正在寻找的功能。

于 2012-11-17T20:51:36.727 回答
1

你已经有了解决方案,你试图让事情变得更简单是在制造复杂性。

如果您的朋友在输入 ID 并单击“插入”后仅显示文件名和专辑标题,则在视图中添加专辑图像对您的朋友没有任何好处。

在添加图片之前,您的朋友需要知道相册 ID 和图片 ID。此信息可能不在视图中。因此,她将查看专辑表并查看图像表以查找此信息,并将文件名与她自己的上传图像列表进行交叉引用。

然后,写下这两个数字后,她可以直接在专辑图像中插入一行。

对于视觉反馈,她可以查看前端网站。

确实,显示专辑名称和文件名的视图会使删除条目更容易,但我认为添加图像和专辑的频率要比删除它们的频率高得多。

因此,在显示链接信息的视图中编辑关联表的能力不应极大地影响您对工具的选择。我可以推荐一些工具,而 phpMyAdmin 是一个合乎逻辑的选择,特别是如果希望向您的朋友传授广泛适用的计算机技能时。看来您已经确定了一些可执行工具。

我想您可以添加一些额外的隐藏前端视图,以简化您朋友的工作流程,例如不在相册中的图像和 ID 列表、相册 ID 列表或显示 ID 的视图。我确实建议您考虑使用您的 CRUD 库通过简单的登录和编辑选项来扩展前端,而不是设计一个单独的后端 GUI。

我很欣赏这不是对确切问题的答案,但它确实解决了您的问题。

于 2012-11-16T18:11:36.147 回答
1

我不确定这是否会有所帮助。我希望找到一个带有一些眼睛糖果/样式的用户界面,但是在搜索时我偶然发现了这个:

https://blogs.oracle.com/MySqlOnWindows/entry/introducing_mysql_for_excel

作为 MySQL on Windows 小组的新产品计划的一部分,我们发布了一个工具,该工具使将数据输入和输出 MySQL 数据库的任务变得非常友好和直观,我们将它与数据分析和数据分析的首选应用程序之一配对在 Windows 平台、MS Excel 中进行操作。

就像我说的,不确定它是否会有所帮助。我处于类似的情况 - 低技术,低预算的客户。不同之处在于我在 MySQL 方面的弱点,但对我来说,我只需要一个表,所以我认为这会起作用。

于 2013-01-24T15:23:49.477 回答
0

没有工具可以让您从此类视图中删除此类值,而不是用于 mysql,因为For a multiple-table updatable view ... DELETE is not supported,请参阅可更新和可插入视图

于 2012-11-12T22:15:28.990 回答
0

我猜你正在寻找基于 Python 的 Django 管理系统的等价物,它实际上是通过对数据结构的分析来构建自己的。

Symfony、Cake 和 Yii 等框架内置了其中的一些内容,但我猜测您的数据库架构可能不兼容,因为这些类型的系统通常要求您遵守严格的命名约定,但它当然值得一看。

于 2012-11-21T15:30:10.337 回答
0

俏皮,

我已经发布了一个答案,但这个答案不同,值得单独回应,IMO。

既然您正在寻找一个简单、对客户友好的解决方案,我可以建议 Adminer 吗? http://www.adminer.org/en/

具体来说,我最近在一个网站上使用了 Wordpress 插件: http ://wordpress.org/extend/plugins/adminer/

它提供了几乎完整的 phpMyAdmin 功能。对客户来说非常容易,如果他们愿意,他们可以将数据库导出为 .csv 并在 excel 中编辑,然后重新上传。几乎每个人都熟悉 Excel 中的编辑,他们可以定期进行备份。

希望这可以帮助!

Ĵ

于 2013-04-18T17:26:51.197 回答
0

您可以使用 Xataface 快速轻松地为此类使用创建前端。我发现它非常快速和有用。我很乐意帮助您开始使用它。

www.xataface.com

于 2013-11-04T20:52:13.930 回答