我有一个看起来像这样的表(仅显示一些列作为示例),其中ID自动递增:
('client' table)
client_id | state | concerns
__________|_______|_________
01 | MA | ...
02 | NJ | ...
03 | MA | ...
我有另一个表,我想为该表的PK做的是根据'client'表中的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,如果这有所不同!)
答案 0 :(得分:0)
您需要创建引用客户端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;