我有一个表称为队(ID,名称,...)我有一个表称为分区(ID,名称,......)我想diviosn持有teams.id对于一个分区中的每个球队而言,球队可以有多于一个分区。我如何设置?MYSQL表设计帮助
回答
假设你的表看起来像这样
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'
师这也让尽可能多的团队,只要你想属于一个部门,为你想要包含相同的团队的许多部门。这是一个多对多的关系表。
您可以创建所谓的关系表。这是团队表格和Divisions表格之间的中间表格。然后我们说球队表(tbl_teams)和分区表(tbl_divisions)之间存在多对多的关系。你可以在一个部门拥有很多团队,在许多部门拥有一个团队,或者在许多部门拥有许多团队。
tbl_teams_divisions_rel
ID INT PRIMARY KEY NOT NULL AUTO_INCREMENT
TEAM_ID INT NOT NULL
Division_ID INT NOT NULL
然后你建立的关系tbl_teams_divisions_ rel.Team_ID和tbl_team.ID,然后tbl_teams_divisions_rel.Division_ID和tbl_divisions.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
希望它有帮助!
谢谢,我会试试看。 ID字段是否必需? – Rich 2011-01-22 21:38:36
这是多对多关系的标准方法:制作包含两列team_id和division_id的单独表格teams_divisons(或divisions_teams)。
您可以将两列 - division_names
添加到将包含每个部门中团队名称的团队,并将team_names
添加到包含团队所属部门名称的部门。
当您添加团队或部门,按照它由;
,那么你可以通过使用$field = explode(";", $field);
创建基于该领域的团队或部门的数组,然后使用foreach()
列表中的组或部门。
这是假设你正在使用PHP。如果我误解了你,请告诉我。
您需要创建一个多对多联结表来加入分区和团队表。
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),
);
- 1. SQL表设计帮助
- 2. PHP表单设计帮助
- 3. 帮助设计表单
- 4. 帮助类设计
- 5. ERD设计帮助
- 6. Rails设计帮助
- 7. SQL Server:表设计中的帮助
- 8. Windows服务设计帮助
- 9. 帮助数据库设计
- 10. 课堂设计帮助
- 11. UI设计帮助/建议
- 12. 桂设计帮助 - MFC
- 13. 帮助数据库设计
- 14. 帮助数据库设计
- 15. 建筑设计帮助
- 16. WCF设计需要帮助
- 17. Javascript/python设计帮助
- 18. iPhone UI设计帮助
- 19. 帮助设计此TableLayoutPanel
- 20. 数据库设计帮助
- 21. 帮助程序设计
- 22. Rails帮助与设计
- 23. MYSQL查询帮助(EAV表)
- 24. MySQL查询帮助,多表
- 25. MySQL查询帮助计数请
- 26. MySQL查询帮助,包括计数?
- 27. MYSQL用户统计查询帮助?
- 28. MYSQL:帮助计数行函数
- 29. MySQL查询帮助命中统计?
- 30. 帮助数据库设计结构为mysql
所以成员-divisionId -teamId我只有两个字段都是主键?还是我需要一个自动递增的附加密钥? – Rich 2011-01-22 21:30:42