作爲一個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' –