Database Redmine-数据库结构/规范化

Database Redmine-数据库结构/规范化,database,database-design,relational-database,redmine,Database,Database Design,Relational Database,Redmine,我正在使用redmine进行项目管理和问题跟踪。 我查看了数据库表和底层结构,想知道是否有对数据库体系结构非常有经验的人可以对该结构进行评论。 我担心一旦有许多用户和数百(或数千)个项目(每个项目包含许多问题,每个问题包含许多消息等),数据库结构可能会成为一个弱点 这种设计对性能有何影响 我想听听桌子摆放方式的利弊 以及数据是如何分离或规范化的,以及是否 这可能值得重新构建 这样做的好处是什么 将数据分离到更多表中(每个表的列数更少) 数据库结构看起来是问题/项目跟踪系统的典型结构。如果你能想

我正在使用redmine进行项目管理和问题跟踪。

我查看了数据库表和底层结构,想知道是否有对数据库体系结构非常有经验的人可以对该结构进行评论。

我担心一旦有许多用户和数百(或数千)个项目(每个项目包含许多问题,每个问题包含许多消息等),数据库结构可能会成为一个弱点

  • 这种设计对性能有何影响
  • 我想听听桌子摆放方式的利弊 以及数据是如何分离或规范化的,以及是否 这可能值得重新构建
  • 这样做的好处是什么 将数据分离到更多表中(每个表的列数更少)

数据库结构看起来是问题/项目跟踪系统的典型结构。如果你能想出一个更好的结构,我会非常有兴趣去看:)

你需要记住的是,应用规范化规则是很好的,但是如果你应用得太多,那么有时候你可能会遇到性能问题(可怕的去规范化黑客开始潜入)。换句话说,在一些正常化和核心(太多)正常化之间需要平衡

您必须有一个很好的理由来重新构造该数据库模型。例如,对于某些特定的查询,数据库设计可能无法有效地提供答案。然后,您可以开始问自己,可以创建哪些其他表来保存我需要的数据,从而获得最佳查询性能。您还可以问问自己,还有哪些其他索引可以实现最佳性能


事实上,除非你预测这个数据库中有大量的用户、项目和问题,否则很难回答这些问题。也许你可以为一些假用户和项目生成数据,并测试数据库以备份你的顾虑?记住Donald Knuth教授的格言:过早优化是万恶之源。

我想我在考虑过度规范化。哈哈。也许你可以解释一下什么是“去规范化黑客”?不确定这是否与我所想的相同。当你没有向我们展示结构、表格、性能或事实上的任何东西时,你如何期望有人“评论”结构、表格、性能等等?如果你知道问题所指的是什么,你会知道你刚才所问的大部分事实。您是该领域的DB管理员、架构师还是设计师??如果您需要这些信息,并且您是该领域的专家,我可以帮助您找到这些信息。