作为一个uni项目,我正在为敏捷项目构建一个简约的jira项目管理工具。我将在Java和Hibernate中使用MySql。到目前为止,这是我的数据库模式。 你会推荐任何改变吗?我应该改变这个数据库设计的任何东西吗?
回答
我建议定位id
场到第一位置,每个表应该有主键,并且每个主键应该有不同的名称彼此。
像:project
=>project_id
,person
=>person_id
,.......
这一行动将有助于您对数据库查询和您部署应用程序。 希望这有助于。
您给我们的关于您的要求的信息很少,但我会尝试根据我的(非常有限)的经验提出一些建议。
- 你需要逻辑思考你将如何使用你的数据库并从中创建你的设计。在我看来,一个项目是系统的中心,所以一切都应该考虑周围的实体。
- 一个项目有许多Sprint。
- Sprint有很多故事。
- 一个故事有很多故事任务。
- 每个StoryTask都有一个指定的用户。
所以从这个概念考虑,我们已经有了一个简单的设计:
Project --< Sprint --< Story --< StoryTask -- Person
然后你就可以进入更详细,对事物的思维像“我是不是想我的用户能够在多个任务上工作?“如果答案是肯定的,那么你可以有从人一个一对多的关系:
Project --< Sprint --< Story --<StoryTask>-- Person
不是说你有你的,你认为会工作的基本设计,你能想到的关于您的查询更多详细信息。例如,如果您想获得所有在您的项目上工作的人员的列表,您必须编写一个长查询,该查询连接并搜索涉及的所有表。对于常用的功能,如列出了所有的人在一个项目上,你可以创建一个Person和项目之间的连接:
Person* >-- Project --< Sprint --< Story --<StoryTask>-- Person*
另外,如果你是一个人打算与多个项目相关联,可以查询哪些项目的人已经属于你需要创建一个关系表
Person* --<ProjectPersonnel>-- Project --< Sprint --< Story --<StoryTask>-- Person*
它始终是更好地认为你会设计数据库之前运行的查询。例如,如果你想要所有的项目的人已经对列表,你可以有一个相对简单的查询
SELECT 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"
一个简单的查询,正如我说的,我没有太多的经验在场上如此,肯定有更好的建议,在那里 - 我只希望这有点用处。
并且不要忘记考虑你会需要数据报告而不仅仅是数据输入。它在数据库的设计上有很大的不同。 – HLGEM
- 1. 我应该如何设计这个数据库?
- 2. 我应该如何规范化这个数据库设计?
- 3. 我应该如何设计这个数据库?
- 4. 的replaceAll不会改变任何东西
- 5. 我应该改变我的MySQL数据库结构吗?
- 6. 东西改变我的URL
- 7. Bootstrap没有设计任何东西
- 8. 这个数据库设计好吗?
- 9. 我应该如何发音每一个这些东西?
- 10. 我该如何优化这个数据库设计?
- 11. 我该如何最好地设计这个数据库?
- 12. Swiftmailer set从不改变任何东西
- 13. PreparedStatement不会改变任何东西
- 14. 跨度类不改变任何东西
- 15. MySQL UPDATE不会改变任何东西
- 16. 从数据库中计数东西
- 17. 数据库设计 - 我的数据应该如何精细化?
- 18. 我该如何修改这个数据库设计来存储用户历史?
- 19. 我应该如何为这个问题设计数据库ER图
- 20. 我应该如何为这个问题设计数据库结构?
- 21. 如何添加这个来自数据库的东西?
- 22. 错误从设计支持库膨胀任何东西
- 23. 我应该如何在asp.net中设计该数据库?
- 24. 如果找不到任何东西,我该如何加入别的东西? MySQL
- 25. 为什么这个程序不能改变任何东西,但它下面的东西呢?
- 26. 这将工作搜索我的数据库中的东西?
- 27. 管理者设计模式有这样的东西吗?
- 28. 我该如何改进这种设计?
- 29. 在JS改变了DOM之后,我该如何刮东西?
- 30. 知道Backbone.Model.set是否改变/不改变任何东西
除了重命名这还有别的吗? –
是的。据我所知(大学课程(DB设计)),你必须为每个字段名称添加前缀。例如在表格'project'中,字段变成:'project_id','project_name','project_description'或者一个位前缀:'pro_id','pro_name','pro_description' –