この例は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_Id
とLastName
) を合わせると、テーブル の主キーを表しますPersons
。これは正しいでしょうか?
- 単一の列ではなく複数の列を主キーとして使用したいのはなぜでしょうか?
- 特定のテーブルで主キーとして一緒に使用できる列はいくつありますか?
ベストアンサー1
あなたの理解は正しいです。
OrderHeader
多くの場合、これを行います。 1 つの例は、と のような関係ですOrderDetail
。 の PK はでOrderHeader
ある可能性がありますOrderNumber
。 の PK はAND でOrderDetail
ある可能性があります。 これら 2 つのうちのいずれかである場合、一意ではありませんが、2 つの組み合わせは一意であることが保証されます。OrderNumber
LineNumber
代替案としては、この場合のように、生成された(インテリジェントではない)主キーを使用することですOrderDetailId
。ただし、その場合、関係を簡単に確認できるとは限りません。ある方法を好む人もいれば、別の方法を好む人もいます。