エンティティ関係モデル



関係データベース
関係データベースは最も一般的なデータベースタイプです.
また、非常に柔軟であり、多くの異なるアプリケーションに使用することができます.たとえば、ユーザーのデータを格納するために使用できます.
エンティティ関係モデルで動作し、テーブルと列で定義されます.
関係データベースの主要なコンポーネントを見てみましょう.

関係データベースのコンポーネント
スキーマ-スキーマはデータベースの構造です.これは、テーブルと列を定義します.ユーザースキーマの例は次のとおりです.
CREATE TABLE User (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT,
    email TEXT,
    password TEXT
);
データ-データベースに格納されている実際のデータ.ユーザデータの例は次のとおりです.
  • ID : 1
  • ジョン・ドウ
  • メール[email protected]
  • パスワード: AJN 1489 Valpa
  • 構造化クエリ言語-データベースのクエリに使用する言語.これは、選択、挿入、更新、データを削除するために使用されます.SQLクエリの例は以下の通りです.
    SELECT * FROM users
    INSERT INTO users (name, email, password) VALUES ('John Doe', '[email protected]', 'ajn1489valpa')
    UPDATE users SET name = 'John Doe' WHERE id = 1
    DELETE FROM users WHERE id = 1
    

    実体関係モデル
    エンティティ:データベース内の各テーブルの型をエンティティと呼びます.エンティティは他のエンティティと異なる関係を持つことができます.
    関係:2つのエンティティを接続する方法です.関係は、1対1で、1から多くへの、1つまたは多くの多くへの多くでありえます.
    関係の種類:

  • 一対一の関係は、各エンティティが他のエンティティとのユニークな関係を持っている関係です.例えば、ユーザーはそれらのプロファイルとのユニークな関係を有する.

  • One to many : 1対多の関係は、各エンティティが複数の他のエンティティとの関係を持つ関係です.例えば、ユーザーは多くのポストを持つことができます.

  • 大多数の関係は、多くの実体が1つの他の実体との関係を持っている関係です.それは1対多の関係の反対です.例えば、ユーザーによって、多くのポストをつくることができます.

  • 多くの多くの関係:多くの実体が多くの他の実体との関係を持つ関係です.たとえば、多くのユーザーが多くの投稿が好きです.多くの多くの関係は、通常、それ自身の権利の実体でありえる結合テーブルに格納されます.
  • 関係はどのように定義されますか?
    リレーションシップは外部キーで定義されます.外部キーは、別のテーブルの主キーを参照するテーブルの列です.たとえば、プロファイルには、ユーザーに外部キーがあります.
    外部キーを示すプロファイルテーブルを作成しましょう.
    CREATE TABLE profiles (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        user_id INTEGER,
        bio TEXT,
        FOREIGN KEY (user_id) REFERENCES users(id)
    );
    
    外部キーはprofiles 表.
    The user_id 列参照id 列の中users 表.
    これは、各プロファイルがuser .
    構文的に、我々はまた、users 表.
    しかし、意味的には、profiles 表.
    外部キー制約を定義するとき、テーブルに項目を追加すると、参照される主キーが存在する必要があります.これは、ユーザーがプロファイルの前に作成する必要があることを意味します.
    より多くのテーブルを作成し、1つの多く、多くの1つの多くの多くの関係を定義します.
    CREATE TABLE posts (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        user_id INTEGER,
        title TEXT,
        body TEXT,
        created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
        updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
        FOREIGN KEY (user_id) REFERENCES users(id)
    );
    CREATE TABLE comments (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        post_id INTEGER,
        user_id INTEGER,
        body TEXT,
        created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
        updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
        FOREIGN KEY (post_id) REFERENCES posts(id)
        FOREIGN KEY (user_id) REFERENCES users(id)
    );
    
    ポストテーブル
    posts テーブル、我々はuser_id 参照するカラムid 列の中users 表.
    これは、各ポストに属することを意味しますuser . しかし、ユーザーは多くのポストを持つことができます.
    コメントテーブル
    コメントテーブルでpost_id 列参照id 列の中posts 表.
    The user_id 列参照users 表.
    コメントは、ユーザーと同様にポストとの多くの1つの関係を持っています.
    多くのコメントは、単一のポストと関連付けることができます.多くのコメントは、単一のユーザーと関連付けることができます.
    コメントテーブルは、ポストとユーザーの間の多くの多くの関係を示します.
    読書ありがとう!これはSQLでエンティティ関係モデルを定義する方法についていくつかのアイデアを与えます.より多くのためにチューニング滞在!あなたが私と接続したいならば、あなたはTwitterで私を見つけることができます