データベース設計では、n:mと1:nはどういう意味ですか?
キーや関係とは何か関係がありますか?
m:n
多対多の関係(反対側のオブジェクトが反対側に関連している)を示すために使用され、1対多の関係(m
反対側のオブジェクトが反対側に関連しn
ている)を1:n
指し1
ますn
。
1:n
「1対多」を意味します。2つのテーブルがあり、テーブルAの各行はテーブルBの任意の数の行から参照できますが、テーブルBの各行はテーブルAの1つの行のみを参照できます(またはまったく参照できません)。
n:m
(またはn:n
)は「多対多」を意味します。テーブルAの各行はテーブルBの多くの行を参照でき、テーブルBの各行はテーブルAの多くの行を参照できます。
関係は通常、単純な1:n
外部キーを使用してモデル化されます。テーブルAの1つの列は、テーブルBの同様の列(通常は主キー)を参照します。主キーは正確に1つの行を一意に識別するため、この行はテーブルAの多くの行から参照できますが、テーブルAの各行はテーブルBの1つの行のみを参照できます。
このn:m
方法で関係を作成することはできません。一般的な解決策は、リンクするテーブルごとに1つずつ、2つの外部キー列を含むリンクテーブルを使用することです。テーブルAとテーブルBの間の参照ごとに、対応する行のIDを含む1つの行がリンクテーブルに挿入されます。
n:m-> nとmの両方がわからない場合は、多対多であり、次のような他の2つのテーブル間のブリッジテーブルで表されます。
-- This table will hold our phone calls.
CREATE TABLE dbo.PhoneCalls
(
ID INT IDENTITY(1, 1) NOT NULL,
CallTime DATETIME NOT NULL DEFAULT GETDATE(),
CallerPhoneNumber CHAR(10) NOT NULL
)
-- This table will hold our "tickets" (or cases).
CREATE TABLE dbo.Tickets
(
ID INT IDENTITY(1, 1) NOT NULL,
CreatedTime DATETIME NOT NULL DEFAULT GETDATE(),
Subject VARCHAR(250) NOT NULL,
Notes VARCHAR(8000) NOT NULL,
Completed BIT NOT NULL DEFAULT 0
)
これは、2つのテーブル間のマッピングを実装するためのブリッジテーブルです。
CREATE TABLE dbo.PhoneCalls_Tickets
(
PhoneCallID INT NOT NULL,
TicketID INT NOT NULL
)
1対多(1:n)は、主キーとして列を持つ1つのテーブルと、外部キー関係としてこの列を持つ別のテーブルです。
1つの商品カテゴリに多くの商品を含めることができる商品や商品カテゴリのようなもの
リレーショナルデータベースでは、すべてのタイプの関係が同じ方法で表されます。つまり、関係としてです。各関係の候補キー(および場合によっては他の制約も)によって、表現されている関係の種類が決まります。1:nとm:nは、2種類の二項関係です。
C {Employee*,Company}
B {Book*,Author*}
いずれの場合も、*はキー属性を示します。{Book、Author}は複合キーです。
Cは、各従業員が1つの会社でのみ働くが、各会社には多くの従業員がいる可能性がある関係(1:n):Bは、本に多くの著者がいる可能性があり、著者が多くの本を書く可能性がある関係(m:n):
重要な制約により、各従業員は1つの会社にしか関連付けることができませんが、本と著者の任意の組み合わせが許可されていることに注意してください。
他の種類の関係も可能です。n-ary(3つ以上のコンポーネントを持つ)。固定カーディナリティ(m:nここで、mとnは固定定数または範囲)。指向性; 等々。ウィリアム・ケントの著書「データと現実」では、少なくとも432種類が識別されています。これは、二項関係のためだけのものです。実際には、2項関係1:nとm:nは非常に一般的であり、通常、データモデルの設計と理解において特に重要なものとして選択されます。
2つの概念を例で説明するために、書店の注文入力システムがあるとします。各注文には複数のアイテムを含めることができ、各アイテムは複数の注文で注文できるため、注文からアイテムへのマッピングは多対多(n:m)です。一方、顧客は複数の注文を行うことができるため、顧客と注文の間のルックアップは1対多(1:n)ですが、注文が複数の顧客に対して行われることはありません。
実体関連図の関係線上の文字「N」はどういう意味ですか?いずれかの番号
M:N
M-序数-最小値を表します(通常vs必須)
N-カーディナリティ-混合を表します
1:N(n = 0,1,2,3 ...)1から0以上
M:N(mおよびn = 0,1,2,3 ...)ゼロ以上からゼロ以上(多対多)
1:1対1
詳細はこちら: https ://www.smartdraw.com/entity-relationship-diagram/
多対多(n:m)1対多(1:n)
m:nは多対多の関係を指し、1:nは1対多の関係を意味します。たとえば、employee(id、name、skillset)skillset(id、skillname、qualifications)
この場合、1人の従業員は多くのスキルを持ち、他のケースを無視すると、1:Nの関係であると言えます。
ブックモデルとページモデルがあると想像してください。
1:N means:
One book can have **many** pages. One page can only be in **one** book.
N:N means:
One book can have **many** pages. And one page can be in **many** books.