mysql-SQL:具有相同主键的两个表

提问

我有两个表:

>人员(personID,姓名,地址,电话,电子邮件)
>播放器(dateOfBirth,学校)

我将使用什么代码,以便可以将Person中的personID用作Person和Player表中的主键?

我知道playerID wold也必须是Player中的外键.有任何想法吗?

最佳答案

尚不清楚您是否需要两个表格来获取此信息,除非有代表的人不是玩家.让我们假设是这种情况(其他人可以是教练,父母,裁判等).此外,即使教练确实出生了,他们的出生日期对系统也不重要(因此无需将出生日期转回“人”表).另外,假设您正在与只上一所学校的人打交道;如果去年他们在另一所学校,则球员记录将在各个季节之间进行更新. (如果需要有关不同年份就读学校的历史信息,则将需要使用不同的表结构.)假设在适当的时候您将向Player表添加更多字段也是合理的.

在这种情况下,您需要将Player数据链接回合适的人:

CREATE TABLE Player
(
    PlayerID     INTEGER NOT NULL PRIMARY KEY REFERENCES Person(PersonID),
    DateOfBirth  DATE NOT NULL,
    School       VARCHAR(20) NOT NULL REFERENCES School(SchoolName)
);

我假设学校的名单是有限的.您可以使用SchoolID整数而不是学校名称来加入;往往更紧凑.

评论