【发布时间】:2020-10-21 20:28:32
【问题描述】:
这是让我发疯的基本内容:
例如,如果我有一张桌子“团队”和一张桌子“玩家”。
并且团队可以有多个玩家以一对多的关系。
是否应该在团队表中的专用字段中表示?我的意思是,团队表中应该有一个“玩家”列吗?
或者链接两个表的外键的定义是否足够?
CREATE TABLE team (
id serial,
name VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE player (
id serial,
team_id int NOT NULL,
name VARCHAR(100) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (team_id) REFERENCES team(id)
);
我将非常感谢您的简短解释。 (如果这很重要,我会使用 PostgreSQL。)
谢谢!
【问题讨论】:
-
如果一个玩家只能参加一个团队,那你的设计就好了。
-
表格有列,而不是字段。
-
语义。记录有字段。表有列。同意,设计很好,除非可以将一名球员换到另一支球队并且你关心这段历史,在这种情况下,这是一个多对多的关系,需要第三个“连接”表。
标签: sql postgresql database-design