5

[編集:より良い答えのチャンスがまだあると感じているので、私は賞金を授与しましたが、質問はしませんでした。]

私は通常、MySQLデータ入力インターフェースをphpでコーディングします。

しかし、Web側に焦点を当てたい(データベースからデータをプルする)クイックプロジェクトでは、MySQLのフロントエンドフォームを探しています。理想的には、これは既成のWinまたはOSXプログラムであり、友人やクライアントにデータをフォームに入力できるように渡すことができます。

上記の行は質問を要約したものですが、「phpMyAdminを与えるだけ」またはMySQLへの他のWebインターフェイスが一般的に機能しない理由を示す典型的な状況がここにあります。

画像とアルバムの2つのメインテーブルがあります。3つ目は、画像とアルバムを関連付ける連想テーブルです。

画像: id(PK)、ファイル名

アルバム: id(PK)、アルバム

Album_Image: id(PK)、imageid、albumid(これらは外部キーです:ImagesテーブルとAlbumsテーブルの2つのid PK)

大規模なプロジェクトの場合、非常に快適でカスタマイズされた方法でデータを編集できる優れた「バックエンド」インターフェイス(CRUD)をコーディングしてもかまいません。

友人の画像ギャラリーなどの小さなプロジェクトの場合、データベースからデータをプルするWebインターフェイスである「フロントエンド」のみをプログラムできるようにしたいと思います。バックエンドについては、理想的には、友人が画像、アルバム、および画像とアルバムの関連付けを入力できるように、既成のソリューションを提供したいと思います。昔(私はDBaseIIIを考えています)、物事のそのエントリー側を行うためのインターフェースを与えることは本当に簡単でした。

これが私が試した大まかなアプローチです。親テーブルに結合された連想テーブルのビューを設定したので、次のクエリを使用して、albumid、imageid(PK)およびalbum、filename(親の関連フィールド)が表示されます。

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)を入力し、Insertを押した後、完全な親フィールド(ファイル名とアルバム)がビューに表示されるというものです。視覚的なフィードバック。SQLyog(Win)、HeidiSQL(Win)、Sequel Pro(OSX)の3つのGUIツールでこのビューを試しました。

  1. HeidiとSequelProでは、ビューを編集する方法が見つかりませんでした。

  2. SQLyogでは、ビューのPKフィールド(albumidとimageid)を編集でき、「refresh」を押すと親フィールド(albumとfilename)が正しく表示されます。それは素晴らしいことです。ビューに3つのテーブルが表示されていても、1つのテーブルから編集しているだけなので機能します。しかし、SQLyogは3つのテーブルのどれから削除しようとしているのかわからないため、行を削除できません。一方、SQLyogでは、ビューを作成するのと同じクエリを含む[クエリ]タブで挿入と削除の両方を行うことができます。この種類のタブでは、SQLyogで編集中のテーブルを選択できるためです。これは機能しますが、このワークフローは私の友人にとって少し複雑になり始める可能性があります。彼女はSQLyogを開き、接続し、保存されたクエリを開き、クエリ内で編集する適切なテーブルを選択し、他のすべての適切な動きを行う必要があります。

MySQL用のフォームを作成するのに本当に優れている既存のツールを知っている人がいるかどうか疑問に思います---理想的にはWindowsまたはOSXバイナリです。Webソリューションを検討しますが、フレームワークには興味がありません---重要なのは展開の速度です。フレームワークルートを使用する場合は、独自のCRUDライブラリを使用してインターフェイスを作成することをお勧めします。繰り返しになりますが、コーディングすることはできますが、この種の「迅速なプロジェクト」の目標は、ワークロードをフロントエンド(データベースへのWebインターフェイス)に集中させ、バックエンドを既成のツールに任せることです。

洞察を得る前にヒープに感謝します。:)

編集:NavicatやMySQLWorkbenchについて誰も言及していないようです。私も試したことがないので、誰かが頭のてっぺんからそのトリックをするかどうか知っているかどうか疑問に思います。

4

7 に答える 7

5

あなたが探しているのはMySQLのフォームフロントエンドだと思います。

Webアプリよりもバイナリに興味があるようですが、Microsoft Accessを調べましたか?MySQLと通信でき、必要なものになる可能性があります。

Open Office Baseには、探している機能が十分に備わっていない可能性があります。

于 2012-11-17T20:51:36.727 に答える
1

これが役立つかどうかはわかりません。目の保養/スタイリングを備えたUIを見つけたいと思っていましたが、検索中にこれに出くわしました:

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

MySQL on Windows グループの新製品イニシアチブの一環として、MySQL データベースにデータを出し入れするタスクを非常に使いやすく直感的にするツールをリリースしました。 Windows プラットフォーム、MS Excel での操作。

私が言ったように、それが役立つかどうかはわかりません。私も同様の状況にあります-ローテクで低予算のクライアントです。違いはMySQLの私の弱点ですが、私にとっては単一のテーブルが必要なだけなので、これでうまくいくと思います.

于 2013-01-24T15:23:49.477 に答える
1

あなたはすでに解決策を持っていますが、物事を単純化しようとする試みが複雑さを生み出しています。

ID を入力して [挿入] をクリックした後にのみファイル名とアルバム タイトルが表示されるビューでは、ビューにアルバム イメージを追加しても、友人にとって何のメリットもありません。

画像を追加する前に、友人はアルバム ID と画像 ID を知っている必要があります。この情報はビューにない場合があります。したがって、彼女はアルバム テーブルを確認し、画像テーブルを確認してこの情報を見つけ、ファイル名を自分のアップロードした画像のリストと相互参照します。

次に、これら 2 つの数値を書き留めたら、album_image に行を直接挿入できます。

視覚的なフィードバックについては、フロントエンドの Web サイトを確認できます。

アルバム名とファイル名を表示するビューがエントリの削除を容易にするのは事実ですが、画像とアルバムは削除されるよりも頻繁に追加されると思います。

したがって、リンクされた情報を表示するビューで関連テーブルを編集する機能は、ツールの選択に大きく影響することはありません。ツールを提案することはできますが、phpMyAdmin は理にかなった選択です。特に、広く適用できるコンピューター スキルを友人に教えたい場合はなおさらです。いくつかの実行可能ツールをすでに特定しているようです。

アルバムにない画像と ID のリスト、アルバム ID のリスト、ID を表示するビューなど、友人のワークフローを容易にする隠しフロントエンド ビューを追加できると思います。別のバックエンド GUI を考案するのではなく、CRUD ライブラリを使用して単純なログインと編集オプションでフロントエンドを拡張することを検討することをお勧めします。

これは正確な質問に対する回答ではありませんが、問題は解決します。

于 2012-11-16T18:11:36.147 に答える
0

データ構造の分析から実質的にそれ自体を構築する Python ベースの Django 管理システムと同等のものを探していると思います。

Symfony、Cake、Yii などのフレームワークにはこの機能が組み込まれていますが、これらのタイプのシステムでは通常、厳密な命名規則に従う必要があるため、データベース アーキテクチャに互換性がない可能性があると思いますが、一見の価値があることは確かです。

于 2012-11-21T15:30:10.337 に答える
0

そのようなビューからそのような値を削除できるツールはありません。mysql の場合を除いFor a multiple-table updatable view ... DELETE is not supportedて、更新可能なビューと挿入可能なビューを参照してください。

于 2012-11-12T22:15:28.990 に答える