我目前正在为我公司的问题跟踪器工作,以帮助他们跟踪网络出现的问题.我正在使用C#和SQL.
每个问题都有大约我们需要跟踪的二十件事情(状态,工作损失,创建者,谁在处理它等).我需要将受问题影响的团队列表附加到主要问题表中的每个条目.理想情况下,受影响的团队列表包含某种唯一表实例的链接,仅针对该问题,该实例显示受影响的团队列表以及每个团队实验室受影响的百分比.
所以我的问题是,在问题表的条目和该问题的唯一表之间实现这种"链接"的最佳方式是什么?或者我在想这个问题是错的.
你所描述的被称为"多对多"关系.一个团队可能受到许多问题的影响,同样一个问题可能会影响许多团队.
在SQL数据库设计中,这种关系需要第三个表,其中包含对其他两个表中每个表的引用.例如:
CREATE TABLE teams ( team_id INTEGER PRIMARY KEY -- other attributes ); CREATE TABLE issues ( issue_id INTEGER PRIMARY KEY -- other attributes ); CREATE TABLE team_issue ( issue_id INTEGER NOT NULL, team_id INTEGER NOT NULL, FOREIGN KEY (issue_id) REFERENCES issues(issue_id), FOREIGN KEY (team_id) REFERENCES teams(team_id), PRIMARY KEY (issue_id, team_id) );