作为一个提高我对php,OOP和PDO知识的个人项目,我将设计一个错误报告数据库,如Atlassian Jira,fogbugz等
我对数据库结构有基本的了解,但我只使用过一个数据库。
在这个简化的场景中,我们假设我们将有以下表格:
我的第一个想法是我需要为每个公司建立一个新的数据库,因为如果我将bug数据库与每个人的bug混合在一起会影响查询速度的返回。这可能会导致拥有大量数据库,因为这是一个新概念,我只想知道是否有更好的方法。
我假设我将自动生成一个新数据库,其中包含上面5个表的默认填充字段,这些数据库名为db_company_56
,其中56
是公司的ID。
维护这么多数据库的东西可能会有点混乱,我想知道有没有办法将它们存储在phpadmin的子文件夹下,从环顾四周我看不到明显的方法。我的路线是合理的,还是有更好的办法做这样的事情?
如果你有进一步的阅读材料,我可以搜索自己很棒,我只是不知道要搜索的关键词。
答案 0 :(得分:1)
在为它设置数据库时,有几种方法可以解决任何问题,但是如果我在你的位置,这就是我如何设置它的方法。正如评论中所提到的,你认为你的水平比你应该高 - 除非安全是一个主要问题而你不想在同一个数据库中存储不同的公司记录,你应该只需要一个以上的数据库所有信息。
我假设公司将有多个项目。
你想要的是,如评论中提到的str,多个表。我会为用户及其各自的数据创建一个表,为bug创建一个表,包括公司,项目,问题类型,优先级,您可能需要的任何其他信息(报告用户等)的列,还有一列: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并使用它来提交新的错误记录。简而言之,存储错误报告所需的只是一个表。希望这有点帮助!