23

誰かが作成した MySQL のデータベースがあります。データベースのドキュメントはありません。

テーブル間の関係を知るにはどうすればよいですか?

関係を簡単に見つけられるように、レポートを生成するクエリまたは手順はありますか?

スキーマ情報を調べて手動で把握することはできますが、関係レポートを生成できれば素晴らしいと思います。

4

8 に答える 8

20

以下の手順を実行すると、MySql Workbench で概要を取得できます。

  1. 「データベース」メニューオプションに移動します。
  2. 「リバース エンジニアリング」オプションを選択します。
  3. ウィザードが開き、表示される EER ダイアグラムが生成されます
于 2016-02-15T12:11:48.953 に答える
16

INFORMATION_SCHEMA.KEY_COLUMN_USAGEプログラム的に話すより良い方法は、次のようにテーブルからデータを収集することです。

SELECT 
  `TABLE_SCHEMA`,                          -- Foreign key schema
  `TABLE_NAME`,                            -- Foreign key table
  `COLUMN_NAME`,                           -- Foreign key column
  `REFERENCED_TABLE_SCHEMA`,               -- Origin key schema
  `REFERENCED_TABLE_NAME`,                 -- Origin key table
  `REFERENCED_COLUMN_NAME`                 -- Origin key column
FROM
  `INFORMATION_SCHEMA`.`KEY_COLUMN_USAGE`  -- Will fail if user don't have privilege
WHERE
  `TABLE_SCHEMA` = SCHEMA()                -- Detect current schema in USE 
  AND `REFERENCED_TABLE_NAME` IS NOT NULL; -- Only tables with foreign keys

そしてもう一つは

select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS;
于 2016-02-15T12:12:00.437 に答える
12

SchemaSpy を試してください ( http://schemaspy.sourceforge.net/ ):

SchemaSpy は Java ベースのツール (Java 5 以上が必要) で、データベース内のスキーマのメタデータを分析し、そのメタデータをブラウザーで表示可能な形式で視覚的に表現します。

http://schemaspy.sourceforge.net/sample/からのサンプル出力の HTML ページのスクリーンショットを次に示します。

http://schemaspy.sourceforge.net/sample/ からのサンプル出力の HTML ページのスクリーンショット

コマンドラインを使用したくない場合は、優れた GUI もあります: http://schemaspygui.sourceforge.net/

どちらのツールもオープン ソースであり、私の意見では、非常に軽量で使いやすいものです。あなたが説明した状況にあったときに、それらを数回使用しました。スキーマの概要と、さらに深く掘り下げるための詳細さえも取得します。(「異常」レポートをご覧ください。)


アップデート

http://schemaspy.orgで SchemaSpy の今後のバージョンをチェックしてください。

于 2016-03-11T20:39:57.893 に答える
5

もう 1 つの有効なオプションは、mysql ワークベンチ (を参照) をインストールすることです。「データベースから EER モデルを作成する」を試してみてください。テーブル間の関係を確実に確認できます。

于 2016-03-11T12:06:50.977 に答える
5

SELECTsデータベースを使用するものはありますか ? それが関係の最良の源かもしれません。

于 2016-03-06T22:11:56.730 に答える
4

あなたはinformation_scheme.KEY_COLUMN_USAGEテーブルを見ることができます

提案されているように、KEY_COLUMN_USAGE ビューを使用して FK (外部キー参照) を一覧表示する簡単な方法があります。

SELECT CONCAT( table_name, '.',
column_name, ' -> ',
referenced_table_name, '.',
referenced_column_name ) AS list_of_fks
FROM information_schema.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_SCHEMA = (your schema name here)
AND REFERENCED_TABLE_NAME is not null
ORDER BY TABLE_NAME, COLUMN_NAME;
于 2016-02-15T12:09:58.847 に答える
0

Mysql ワークベンチを使用することをお勧めします。ER図を生成するオプションがあります。phpmyadmin を使用している場合は、任意のテーブルを選択します。テーブル構造を確認できる構造タブがあります。うまくいけば、これは役に立ちます。

于 2016-03-12T06:16:13.387 に答える