错误报告数据库的数据库结构


Database structure for bug reporting database

作为一个提高php、OOP和PDO知识的个人项目,我将设计一个错误报告数据库,如Atlassian Jira、fogbuz等

我对数据库结构有基本的了解,但我只使用过一个数据库。

在这个简化的场景中,假设我们将有以下表格:

  1. 用户
  2. Bug
  3. 项目
  4. 问题类型
  5. 优先级

我的第一个想法是,我需要每个公司都有一个新的数据库,因为如果我把bug数据库和Everyone bug混合在一起,就会影响查询速度的返回。这可能会导致有很多数据库,因为这是一个新概念,我只想看看是否有更好的方法

我假设我将在一个名为db_company_56的数据库下自动生成一个新数据库,其中包含上面5个表的默认填充字段,其中56是公司的id。

用这么多数据库维护东西可能会有点麻烦,我想知道有没有办法把它们存储在phpadmin的子文件夹下,环顾四周,我看不到明显的方法。那么,我走的路线是否合理,或者有更好的方法来做这样的事情吗?

如果你有更多的阅读材料,我可以自己搜索,那就太好了,我真的不知道该在什么关键词下搜索。

在为其设置数据库时,有几种方法可以处理任何情况,但以下是如果我处于您的位置,我将如何设置它。正如评论中所提到的,你认为的级别比你应该达到的级别高——除非安全是一个主要问题,并且你不想在同一个数据库中存储不同的公司记录,否则你应该不需要一个以上的数据库来存储所有信息。

我假设公司会有多个项目。

正如str在评论中提到的那样,您想要的是多个表。我会为用户及其各自的数据创建一个表,为bug创建一个表格,其中有公司、项目、问题类型、优先级、您可能想要的任何其他信息(报告用户等)的列,还有一列:与公司或更可能的项目相关的id号。这不能是AUTO_INCREMENT列,但它仍然可以被管理(我稍后会解释)。

您可以使用多个WHERE条件来显示公司中单个项目的错误,例如:

SELECT * FROM 'bugtable' WHERE company = 'company_name' AND project = 'project_name' ORDER BY bugid ASC

这将显示指定公司指定项目的所有结果。当添加新的bug记录时,很容易分配一个新的id号。为查找最高id的查询分配一个变量,例如:

SELECT 'bugid' FROM 'bugtable' WHERE company = 'company_name' AND project = 'project_name' ORDER BY bugid DESC

然后,将id增加1,并使用它提交一个新的bug记录。简而言之,存储bug报告所需要的只是一个表。希望这能有所帮助!