作为一个uni项目,我正在为敏捷项目构建一个类似于jira的简约项目管理工具。我将在Java和Hibernate中使用MySql。到目前为止,这是我的数据库模式。你会推荐任何修改吗?

发布于 2013-07-17 02:38:06
你给我们的关于你的需求的信息很少,但我会试着根据我(非常有限的)经验提出一些建议。
。
从这个概念来看,我们已经有了一个简单的设计:,,
项目--<冲刺--<故事--< StoryTask -- Person
Project --< Sprint --< Story --< StoryTask >-- Person
Person* >--项目--< Sprint --<故事--< StoryTask >-- Person*
个人* --<故事>--项目--<短跑--<故事--< StoryTask >--个人*
在设计数据库之前,最好考虑一下将要运行的查询。例如,如果您想要一个人参与过的所有项目的列表,您可以使用一个相对简单的查询
选择proj.ProjectName FROM Person per LEFT JOIN ProjectPersonnel pp ON per.PersonId = pp.PersonId LEFT JOIN Project proj ON pp.ProjectId = proj.ProjectId WHERE per.FistName = 'Bob'
如果您想要一个与项目中的Sprint相关联的所有故事的列表,那么您就有了相应的结构来为其创建一个简单的查询
SELECT
story.StoryName
FROM
Story story
LEFT JOIN Sprint sprint
ON story.SprintId = sprint.SprintId
LEFT JOIN Project proj
ON sprint.ProjectId = proj.ProjectId
WHERE
proj.Name = "MyProject1"
AND
sprint.Number = "3"正如我所说的,我在这个领域没有太多的经验,所以肯定有更好的建议-我只是希望这能有点用处。
发布于 2013-07-16 13:51:01
我建议将id字段放在第一个位置,每个表都应该有主键,每个主键应该有不同的名称。
喜欢:project => project_id,person => person_id,.......
此操作将为您部署的数据库查询和应用程序提供便利。希望这能有所帮助。
https://stackoverflow.com/questions/17668728
复制相似问题