1. データベースの制約1.1 はじめに名前が示すように、データベースの制約は、データベースに挿入されるデータに対する制限です。その目的は、データの有効性と整合性を確保することです。 これにより、データベース内のデータの品質が大幅に向上し、データベースのスペースとデータの呼び出し時間が節約されます。 以前、MySQL のデータ型を紹介しました。データ型は実際にデータの一部を検証することができます。制約についても同様であり、一部のデータの検証も可能です。これにより、違法なデータを回避できます。 1.2 制約の種類一般的な制約の種類は次のとおりです。
1.3 ヌルではない
ただし、アンケートによっては必須項目があります。この場合、これらのオプションは空にできないため、not null を使用できます。 例: 1.4 ユニーク
しかし、現実の世界では、例えばIDカード番号や電話番号などは実際には一意の値なので、 例: 知らせ: 列に 1.5 デフォルト列のデフォルト値を指定するために 例: 1.6 主キー
例: 知らせ:
補足: 自動増分 - MySQL は各行に次の利用可能な番号を自動的に割り当てることができるため、行を追加するときに一意の値を手動で割り当てる必要がなくなります (手動で実行できます)。ただし、テーブルを作成するときに使用する必要があります。例:
1.7 外部キー外部キーは、別のテーブルの主キーまたは一意の値を関連付けるために使用できる たとえば、Taobao で買い物をする場合、データベースには製品テーブルと注文テーブルの 2 つのデータ テーブルがあり、両方のテーブルに製品番号を含めることができます。注文テーブルの製品番号は、製品テーブルに存在する場合にのみ表示されます。したがって、外部キーを使用して、異常なデータが表示されないように制限することができます。 例:
解決策:論理的な削除 (データベース レコードを直接削除せず、外部キー制約を破らない) レコードが有効か無効かを示す新しいフィールドを製品テーブルに導入します。このフィールドのデフォルト値は 1 に設定でき、これは有効を意味します。この製品を削除する場合は、このフィールドを 0 に変更すると、製品は無効になります。 1.8 チェック
例: 2. データベーステーブルの設計基本的なデータベース操作方法を習得した後、テーブルをゼロから構築する操作に直面した場合、必要なエンティティとそれらの間の関係をしっかりと把握している必要があります。 エンティティ間の関係には、主に 4 つの種類があります。
2.1 1対1の関係たとえば、学生はシステムのユーザー ID に対応しており、次の 2 つの設計方法があります。 学生情報とユーザー情報を1つのテーブルにまとめる
学生をテーブル A に、ユーザー情報をテーブル B に入力します。テーブル B では、学生 ID を挿入して、学生とユーザーを関連付けることができます。 テーブル:
表B:
2.2 1対多の関係たとえば、中学生とそのクラスの間には、一般的に 1 対多の関係があります。生徒は 1 つのクラスのみに所属でき、クラスには複数の生徒を含めることができます。 通常、生徒情報を格納するテーブルAとクラス情報を格納するテーブルBの2つのテーブルを設計し、生徒情報にクラスを追加して関連付けることができます。 表A:
表B:
2.3 多対多の関係たとえば、大学生とコースの間には多対多の関係があります。学生は複数の異なるコースを受講でき、コースには選択できる学生が多数いる場合があります。 今回は、学生情報を格納するテーブル A、コース情報を格納するテーブル B、学生とコースを結び付けるテーブル C の 3 つのテーブルを設計します。 表A:
表B:
C テーブル:
これで、MySQL データベースの制約とデータ テーブルの設計原則に関するこの記事は終了です。MySQL データベースの制約とデータ テーブルの設計の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: HTML はモバイル上で固定フローティング半透明検索ボックスを実装します
>>: オンデマンドで Vue コンポーネントを自動的にインポートする方法
[LeetCode] 184. 部門最高給与従業員テーブルにはすべての従業員が保存されます。すべて...
背景: 最近、資産報告関連の機能に取り組んでおり、中国語入力をサポートする必要があります。通常のショ...
■ ウェブサイトのテーマ計画 ウェブサイトのテーマが断片化しすぎないように注意してください。一般的に...
最初のステップは、MySQL 8.0.23の無料インストールバージョンをダウンロードすることです。 ...
この質問は非常に奇妙なので、あまり多くを語らずにコードに直接進みます。 .g-ダイアログラッパー{ ...
まずコードを見てみましょうコードをコピーコードは次のとおりです。 <div style=&qu...
padding-top パーセンテージを使用すると、固定幅と比例した高さの表示を実現できます。現在の...
コンテナ間の通信1. コンテナのネットワーク共有このモードの Docker コンテナはネットワーク ...
序文すでに Docker をインストールしており、Docker について簡単に理解しています。ここで...
Win10 で csv をエクスポートする方法は 2 つあります。1 つ目はツールを使用することです...
目次1 はじめに2 前提条件2.1 データ型2.2 それが自身のプロパティであるかどうかを判断する ...
最近、会社のサーバーの時間が不正確で、外部の時間ソースと同期できないことがわかりました。会社はドメイ...
1. 設置環境Dockerは次のCentOSバージョンをサポートしていますCentOS 6.5 (6...
ブラウザのウェブページを最適化するためのいくつかのルールページの最適化静的リソース圧縮ビルド ツール...
!DOCTYPE HTML ドキュメントが準拠するドキュメント型定義 (DTD) を指定します。 ...