簡體   English   中英

根據另一個表的主鍵創建主鍵

[英]Creating primary key based off of a primary key from another table

我有一個看起來像這樣的表(僅顯示一些列作為示例),其中ID正在自動遞增:

 ('client' table) client_id | state | concerns __________|_______|_________ 01 | MA | ... 02 | NJ | ... 03 | MA | ... 

我有另一個表,該表的PK我想根據“客戶端”表中的PK創建它。 (客戶可以是一個人,也可以是兩個人)

 ('person' table) person_id | fname | dob | client_id __________|_______|____________|__________ 01A | MA | 1/1/1978 | 01 01B | MA | 2/7/1985 | 01 02 | NJ | 5/17/1983 | 02 03A | MA | 3/12/1970 | 03 03B | MA | 5/23/1987 | 03 

因此,如果客戶端由兩個人組成,則只會將字母添加到PK中(注意“ person_id”如何保持為02)。

我應該怎么做呢? 我不確定是否將其設置為“ 01_1”,“ 01_2”會比看起來像“ 01A”,“ 01B”更容易,但是無論哪種方式都會使其更容易使用! 先感謝您!

**(我忘了說我正在使用MySQL,如果有幫助的話!)

您需要創建一個引用客戶端ID的外鍵,然后使其成為主鍵。 我建議您為其他數據創建其他列。

這是一個示例,我忽略了其他列:

CREATE TABLE client (
    client_id CHAR(40),
    PRIMARY KEY(client_id),
) ENGINE=INNODB;

CREATE TABLE person (
    client_id CHAR(40),
    person CHAR(40),
    PRIMARY KEY (client_id, person),
    FOREIGN KEY (client_id) REFERENCES client(client_id)
) ENGINE=INNODB;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM