\r\n\r\n

初心者のためのmysqlデータベーススキーマの書き方ガイド

テキストエディターとこの基本構造のアウトラインまたは "スキーマ "を使用して独自のmysqlデータベースを作成する...

ソフトウェアプロジェクトの開発において、最も重要かつ基本的で本質的な側面の1つが、適切に構造化されたデータベーススキーマです。これは、家を建てるときに、基礎工事がきちんとできていないと、質の高い家が建つ可能性が大きく減ってしまうのと同じことです。

ここでは、構造化されたデータベース・スキーマを作成するためのポイントを紹介します。

テーブル作成構文

まず、お好きなテキストエディタを開いてください。データベーススキーマを作成するのに必要なのは、プレーンテキストファイルだけです。データベースは、それぞれがカラムからなるいくつかのテーブルから構成されており、CREATE TABLE構文は、単一のテーブルを作成するために使用されます。以下は基本的な例です。

CREATE TABLE users (id INT NOT NULL,is_active TINY INT NOT NULL,full_name VAR CHAR(100) NOT NULL,email VARCHAR(100) NOT NULL);

ご覧の通り、これによって4つのカラムからなるUSERSというデータベース・テーブルが作成されます。これは、CREATE TABLEで始まり、データベース・テーブルの名前が続き、テーブルのカラムが括弧の中にカンマで区切られている、かなり単純なSQL文であるべきです。

正しい列の種類を使用する

上に示したように、テーブルにはカンマで区切られた列がある。各列の定義は、3つの同じ部分から構成されている。

COL_NAME TYPE [OPTIONS]

列の名前、列のタイプ、オプションのパラメータの順で指定します。オプションのパラメータについては後で説明しますが、ここではカラムのタイプに焦点を当てます。

どう考えても、上記のカラムタイプは、うまく構築されたmySQLデータベーススキーマを書くために必要なものです。

カラムオプションの定義

以下は、CREATE TABLE文の別の例です。

CREATE TABLE users (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,username VARCHAR(100) NOT NULL UNIQUE,status ENUM('active','inactive') NOT NULL DEFAULT 'active',balance DECIMAL(8,2) NOT NULL DEFAULT 0,date_of_birth DATETIME,created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP);

上記は少し怖く感じるかもしれませんが、心配いりません、簡単です。分解すると、上記の文章で起こったことは次のとおりです。

  • テーブルのスピードとパフォーマンスを向上させるために、可能な限りすべてのカラムにnotnullを使用する必要があります。これは単に、**行が**であるとき、**列がNULL/NULLであってはならないことを指定するものです。
  • カラムサイズをできるだけ小さくすることは、スピードとパフォーマンスの向上につながるので、常に心がけてください。
  • id列は整数で、テーブルの主キーである。つまり、一意であり、行が**作成されるたびに1ずつ増加する。これは通常、作成するすべてのテーブルに適用され、テーブル内の任意の行を簡単に参照できるようにします。
  • status 列は列挙型で、値は "active "または "inactive "でなければならない。値が指定されない場合、新しい行は "active "の状態で開始されます。
  • 新しい行ごとに、「残高」列は0から始まり、小数点以下2桁でフォーマットされます。
  • 生年月日」列は単なる日付であるが、作成時に生年月日がわからない場合があるため、NULL値も許容する。
  • 最後に、created_at列はタイムスタンプであり、デフォルトは**行の現在時刻である。

上記は、後ほど例に挙げるべき、よく構造化されたデータベーステーブルの例である。

外部キー制約によるテーブルのリンク

mySQLのようなリレーショナルデータベースを使用する最大の利点は、外部キー制約とカスケード接続を非常に強力にサポートしていることです。これは、2つのテーブルをカラムで結んで親子関係を作り、親の行を削除すると、必要な子の行も自動的に削除されることを意味します。

一例として

CREATE TABLE users (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,username VARCHAR(100) NOT NULL UNIQUE,full_name VARCHAR(100) NOT NULL,created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP) engine=InnoDB;CREATE TABLE orders (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,userid INT NOT NULL,amount DECIMAL(8,2) NOT NULL,product_name VARCHAR(200) NOT NULL,FOREIGN KEY (userid) REFERENCES users (id) ON DELETE CASCADE) engine=InnoDB;

外部キー節が最後の行であることに気づくでしょう。この行は、このテーブルが、usersテーブルのidカラムである親行とuseridカラムでリンクされた子行を含むことを単に示しています。つまり、users テーブルから行が削除されるたびに、mySQL は orders テーブルから対応するすべての行を自動的に削除し、データベースの構造的整合性を確保するのです。

InnoDBは現在ではmySQLのデフォルトのテーブルタイプであるが、常にそうであったわけではないので、カスケードはInnoDBテーブルにのみ適用されるので、念のため追加しておくべきである。

安心して使えるデザイン

これで、信頼性が高く、構造化されたmySQLデータベーススキーマを構築するための道筋が整ったことになります。以上の知識を活用すれば、性能と構造的な完全性を兼ね備えた、よく整理されたスキーマを書くことができるようになります。

スキーマを作成した後は、基本的なSQLコマンドを使用してスキーマの使用方法を確認してください。

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ