1. ホーム
  2. database-design

[解決済み] 複数のカラムを主キーとして使用する理由(複合主キー)

2022-08-19 05:54:29

質問

この例は 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 . これは正しいのでしょうか?

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

どのように解決するのですか?

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

これはいろいろなケースで行われるでしょう。 一例として、以下のような関係で OrderHeaderOrderDetail . のPKは OrderHeaderOrderNumber . のPKは OrderDetailOrderNumber そして LineNumber . この2つのどちらかであれば、一意ではありませんが、この2つの組み合わせは一意であることが保証されています。

別の方法として、生成された(非インテリジェントな)主キーを使用することもできます。例えばこの場合は OrderDetailId . しかし、その場合、関係を簡単に確認することはできません。 ある人は一方の方法を好み、ある人はもう一方の方法を好みます。