CREATE TABLE
ステートメントを使用する代わりに、データベース構造を単純なテキストで説明することを好む人もいます。いくつかの例:
- 主キーとしての外部キー
- 複数の主キーを単一の外部キーとして
- 2 つの同時多対多リレーションシップがあるデータベース スキーマを設定するにはどうすればよいですか?
- 主キーと外部キー
- この注文状況のデータベース テーブルをどのように設定すればよいですか
この種の省略表記を実際の SQL ステートメントに変換するソフトウェアを知っていますか?
CREATE TABLE
ステートメントを使用する代わりに、データベース構造を単純なテキストで説明することを好む人もいます。いくつかの例:
この種の省略表記を実際の SQL ステートメントに変換するソフトウェアを知っていますか?
実際、まさにこれを行うphpスクリプトの作成を終えたところですが、もっと専門的なものがあればいいのですが...
私のコンバーターのデモ:
入力例:
= ID id P AI
person
ID
mother_id -> person
father_id -> person
!FK mother_id, father_id -> family U:C, D:C
family
P female_id -> person
P male_id -> person
出力:
CREATE TABLE IF NOT EXISTS person (
id INT NOT NULL AUTO_INCREMENT,
mother_id INT NOT NULL,
father_id INT NOT NULL,
PRIMARY KEY ( id )
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
CREATE TABLE IF NOT EXISTS family (
female_id INT NOT NULL,
male_id INT NOT NULL,
PRIMARY KEY ( female_id, male_id )
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE person ADD FOREIGN KEY ( mother_id ) REFERENCES person( id );
ALTER TABLE person ADD FOREIGN KEY ( father_id ) REFERENCES person( id );
ALTER TABLE person ADD FOREIGN KEY ( mother_id, father_id ) REFERENCES family( female_id, male_id ) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE family ADD FOREIGN KEY ( female_id ) REFERENCES person( id );
ALTER TABLE family ADD FOREIGN KEY ( male_id ) REFERENCES person( id );
http://sqlfiddle.comで利用できる text-to-ddl ツールについて言及したようです。これは実際に私が JavaScript で作成したツール (sqlfiddle.com は私のサイトです) で、StackOverflow の質問に投稿されたテキスト テーブルをより簡単に取得し、それらをより迅速に実際の DDL に変換できるようにすることを目的としています。テキストテーブル形式のかなりの一般的なバリエーションに対してはかなりうまく機能すると思いますが、より多くの種類を処理するには多少の作業が必要になると確信しています. それぞれ (MS SQL、Oracle、PostgreSQL、MySQL、および SQLite) の個別の handlebars.js テンプレートを使用して、さまざまな DDL タイプをサポートしています。
ライブラリ全体は JavaScript で書かれているので、改善を手伝ってくれる人がいれば、ぜひ貢献してください。 github でフォークして、ファイル javascripts/ddl_builder.js を探してください。いくつかのプル リクエストをお待ちしております。