SQL 一对多关系:我应该在 table 中看到 "many" 字段吗?

SQL one-to-many relationship: Should I see a "many" field in the table?

这是让我发疯的基本东西:

例如,如果我有一个 table“团队”和一个 table“玩家”。

并且团队可以有多个玩家,一对多关系。

是否应该在团队中的专用字段中表示table?我的意思是,团队 table 中应该有一个“玩家”栏吗?

或者链接两个table的外键的定义是否足够?

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。)

谢谢!

“球队 table 中是否应该有一个“球员”栏?”不!您想要玩家 table 中已有的团队列。这基本上就是说“一支球队可以有很多球员,但一名球员只能属于一支球队”。如果您随后将球员列放入团队中,那么您就创建了一个 1:1。那就是说“一名球员只能在一支球队,一支球队只能有一名球员”。
以上将定义当前情况。但是一个球员可以在多支球队——尤其是随着时间的推移——你想保留那个历史:球员 A 现在在 C 队,但上个赛季在 B 队。然后你有 M:M 并且需要第 3 个table (player_team) 有一个玩家栏和一个团队栏以及一些定义它何时生效的指标 is/was - 比如开始和结束日期。