複数の列を主キーとして使用する理由(複合主キー) 質問する

複数の列を主キーとして使用する理由(複合主キー) 質問する

この例はw3schoolsより

CREATE TABLE Persons
(
    P_Id int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)

私の理解では、両方の列 (P_IdLastName) を合わせると、テーブル の主キーを表しますPersons。これは正しいでしょうか?

  • 単一の列ではなく複数の列を主キーとして使用したいのはなぜでしょうか?
  • 特定のテーブルで主キーとして一緒に使用できる列はいくつありますか?

ベストアンサー1

あなたの理解は正しいです。

OrderHeader多くの場合、これを行います。 1 つの例は、と のような関係ですOrderDetail。 の PK はでOrderHeaderある可能性がありますOrderNumber。 の PK はAND でOrderDetailある可能性があります。 これら 2 つのうちのいずれかである場合、一意ではありませんが、2 つの組み合わせは一意であることが保証されます。OrderNumberLineNumber

代替案としては、この場合のように、生成された(インテリジェントではない)主キーを使用することですOrderDetailId。ただし、その場合、関係を簡単に確認できるとは限りません。ある方法を好む人もいれば、別の方法を好む人もいます。

おすすめ記事