MYSQL表格设计帮助

MYSQL表格设计帮助,mysql,Mysql,我有一个名为teams(id,name,…)的表,我有一个名为divisions(id,name,…)的表,我希望diviosn包含一个分区中每个团队的teams.id,并且团队可以位于多个分区中。如何设置它?您可以创建所谓的关系表。它是Teams表和Divisions表之间的中间表。然后我们说团队表(tbl_团队)和部门表(tbl_部门)之间存在多对多关系。一个部门可以有多个团队,多个部门可以有一个团队,或者多个部门可以有多个团队 tbl\u团队\u部门\u相关 ID INT主键非空自动增量

我有一个名为teams(id,name,…)的表,我有一个名为divisions(id,name,…)的表,我希望diviosn包含一个分区中每个团队的teams.id,并且团队可以位于多个分区中。如何设置它?

您可以创建所谓的关系表。它是Teams表和Divisions表之间的中间表。然后我们说团队表(tbl_团队)和部门表(tbl_部门)之间存在多对多关系。一个部门可以有多个团队,多个部门可以有一个团队,或者多个部门可以有多个团队

tbl\u团队\u部门\u相关

  • ID INT主键非空自动增量

  • 团队ID INT不为空

  • 除法ID INT不为空

然后在tbl_团队_部门_rel.Team_ID和tbl_Team.ID之间建立关系,然后在tbl_团队_部门_rel.Division_ID和tbl_部门ID之间建立关系

如果您问一个问题,如何列出ID为13的特定部门中的所有团队,您将执行以下操作:

SELECT tbl_teams.*
FROM
    tbl_teams
    INNER JOIN tbl_teams_divisions_rel ON tbl_teams_divisions_rel.Team_ID = tbl_teams.ID
WHERE tbl_teams_divisions_rel.Division_ID = 13

希望有帮助

您创建了所谓的关系表。它是Teams表和Divisions表之间的中间表。然后我们说团队表(tbl_团队)和部门表(tbl_部门)之间存在多对多关系。一个部门可以有多个团队,多个部门可以有一个团队,或者多个部门可以有多个团队

tbl\u团队\u部门\u相关

  • ID INT主键非空自动增量

  • 团队ID INT不为空

  • 除法ID INT不为空

然后在tbl_团队_部门_rel.Team_ID和tbl_Team.ID之间建立关系,然后在tbl_团队_部门_rel.Division_ID和tbl_部门ID之间建立关系

如果您问一个问题,如何列出ID为13的特定部门中的所有团队,您将执行以下操作:

SELECT tbl_teams.*
FROM
    tbl_teams
    INNER JOIN tbl_teams_divisions_rel ON tbl_teams_divisions_rel.Team_ID = tbl_teams.ID
WHERE tbl_teams_divisions_rel.Division_ID = 13

希望有帮助

这是多对多关系的标准方法:创建一个包含两列team\u id和division\u id的单独表teams\u divisions(或divisions\u teams)。这是多对多关系的标准方法:创建一个单独的表teams\u divisions(或divisions\u teams)包含两列team_id和division_id。

您可以将两列-
division_Name
添加到包含每个部门中的团队名称的团队中,并将
team_Name
添加到包含团队所属部门名称的部门中

添加团队或部门时,请在其后面加一个
,然后您可以使用
$field=explode(“;”,$field)基于该字段创建团队或部门的数组
,然后使用
foreach()
列出团队或部门


假设您使用的是PHP。如果我误解了你,请告诉我。

你可以在团队中添加两列-
部门名称
,其中包含每个部门的团队名称,在部门中添加
团队名称
,其中包含该团队所属部门的名称

添加团队或部门时,请在其后面加一个
,然后您可以使用
$field=explode(“;”,$field)基于该字段创建团队或部门的数组
,然后使用
foreach()
列出团队或部门


假设您使用的是PHP。如果我误解了你,请告诉我。

假设你的桌子是这样的

teams
-teamId
-teamName

divisions
-divisionId
-divisionName
我认为您正在寻找的是一个多对多链接表

membership
-divisionId
-teamId
这将允许您找到一个分区中的所有团队

select teamId
from team t
join membership m
  on m.teamId = t.teamId
where m.divisionId = 'theIdYouWant'

它还允许您希望属于某个部门的任意多个团队,以及您希望包含相同团队的任意多个部门。这是一个多对多关系表。

假设您的表是这样的

teams
-teamId
-teamName

divisions
-divisionId
-divisionName
我认为您正在寻找的是一个多对多链接表

membership
-divisionId
-teamId
这将允许您找到一个分区中的所有团队

select teamId
from team t
join membership m
  on m.teamId = t.teamId
where m.divisionId = 'theIdYouWant'

它还允许您希望属于某个部门的任意多个团队,以及您希望包含相同团队的任意多个部门。这是一个多对多关系表。

您需要创建一个多对多连接表来连接部门表和团队表

CREATE TABLE division (division_id INT NOT NULL,
                     PRIMARY KEY (division_id)
);

CREATE TABLE team (team_id INT NOT NULL,
                     PRIMARY KEY (team_id)
);

CREATE TABLE division_team (division_team_id INT, 
                    PRIMARY KEY (division_team_id)
                    division_id INT, 
                    team_id INT,
                    FOREIGN KEY (division_id) REFERENCES division(division_id),
                    FOREIGN KEY (team_id) REFERENCES team(team_id),
);

您需要创建一个多对多连接表来连接部门表和团队表

CREATE TABLE division (division_id INT NOT NULL,
                     PRIMARY KEY (division_id)
);

CREATE TABLE team (team_id INT NOT NULL,
                     PRIMARY KEY (team_id)
);

CREATE TABLE division_team (division_team_id INT, 
                    PRIMARY KEY (division_team_id)
                    division_id INT, 
                    team_id INT,
                    FOREIGN KEY (division_id) REFERENCES division(division_id),
                    FOREIGN KEY (team_id) REFERENCES team(team_id),
);

那么membership-divisionId-teamId I只有两个字段都是主键?或者我需要一个自动递增的附加键吗?链接表上不需要主键。所以membership-divisionId-teamId I只有两个字段都是主键?或者我需要一个自动递增的附加键吗?链接表上不需要主键。这就是我最初的做法,看起来有点麻烦。是的,我正在使用PHP MYSQL和Joomla。是的,我没有想过添加关系表。有关详细信息,请参阅……任何其他答案:这就是我最初做的,只是看起来有点麻烦。是的,我正在使用PHP MYSQL和Joomla。是的,我没有想过添加关系表。有关详细信息,请参阅……任何其他答案:谢谢,我会试试的。ID字段作为主要字段是必要的吗?谢谢,我会尝试一下。ID字段是否作为主要必要字段?部门团队ID是否确实必要?你能不能让部门id和团队id都成为主键?这取决于。。。如果需要,也可以使用部门id和团队id创建复合主键。但是,如果division\u team表成为其他表的父表,那么最好使用division\u team\u id主键,这样子表就不需要作为外键继承复合id。division\u team\u id真的必要吗?你能不能让部门id和团队id都成为主键?这取决于。。。如果需要,也可以使用部门id和团队id创建复合主键。但若division_团队表成为其他表的父表,则是下注