-2

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

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

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

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

我的第一个想法是我需要为每家公司建立一个新的数据库,因为如果我将 bug 数据库与每个人的 bug 混合在一起,它会影响查询速度的返回。这可能会导致拥有大量数据库,因为这是一个新概念,我只是想看看是否有更好的方法来做到这一点。

我假设我将自动生成一个新数据库,其中包含上面 5 个表的默认填充字段,位于一个名为db_company_56where 56is the company id 的数据库下。

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

如果您有进一步的阅读材料,我可以搜索自己会很棒,我只是真的不知道在什么关键字下搜索。

4

1 回答 1

1

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

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

正如评论中提到的 str ,您想要的是多个表。我将为用户及其各自的数据创建一个表,为错误创建一个表,其中包含公司、项目、问题类型、优先级、您可能想要的任何其他信息(报告用户等)的列,以及另外一个列:id相对于公司或更可能的项目的数字。这不能是 AUTO_INCREMENT 列,但仍然可以管理(我稍后会解释)。

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

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

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

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

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

于 2013-08-04T17:54:44.813 回答