1

这是一个简单的问题。

使用 PHP 和 MySQL,我正在尝试构建一个错误报告应用程序。

目前,用户可以发布错误并将错误列表描绘给技术人员/管理员。

如何使许多技术人员或管理员可以回复报告(线程?)

就像在 mysql 表布局和 PHP 编码中一样?

当前 MySQL 表的布局为:

id          (Bug ID)
by          (person reporting it)
title       (Report Title)
content     (Contents of Report)
datetime    (Date/Time of report)
application (Application/page where problems happens)
priority    (Priority)
assigned    (Assigned To)
status      (Status of report/bug)

所以还没有响应列,但是如何使用 PHP 和 MySQLi 实现多个帖子/响应?

谢谢

4

3 回答 3

5

这将是一个多对一的关系。您可以拥有:

响应表

id (response id)
bugid (bug id)
columns related to the response

或者

响应表

id (response id)
columns related to the response

错误响应表

responseid (response id)
bugid (bug id)
columns related to the bug-response relationship

第二个设计还可以处理多对多关系(在这种情况下不太可能是必需的),并且还可以根据您的要求具有一些其他好处。

于 2009-06-08T19:46:36.887 回答
2

你用响应制作另一个表格。例如布局

id (Response Id), 
responseTo (id of the Bug this is a response to),
by (person responding),
content (Contents of Response)

其中responTo 是关键领域。然后,当您想要查看对错误的所有响应时,您只需从响应表中选择 responseTo = currentBugId。

于 2009-06-08T19:46:41.067 回答
1

您通常做的是为响应创建一个单独的表。在该表中,您有一个“指向”第一个表的字段。它可能看起来像这样:

TABLE responses
id         (Unique id)
bug_id     ("Pointer" to which bug this response "belongs to")
body       (Contents of response)

通过这种方式,您可以获得许多都指向一个错误的响应,因此您实际上创建了“所有权”或“关系”。如果我们假装我们在 bug 表中向外看,那么习惯上称上面的关系为“一对多”。(我们中的一个“多对一”在响应表中,回​​顾错误表。)

然后,在 PHP 中,当您想要检索属于错误的所有响应时,您可以执行以下操作:(伪代码)

$bug = SELECT * FROM bugs WHERE id = $some_id
$resps = SELECT * FROM responses WHERE bug_id = $bug['id'] ORDER BY created_at

瞧!现在您有了错误及其所有响应,按创建日期排序。当然,当您插入新响应时,您需要设置bug_id为适当的值。

干杯!

于 2009-06-08T19:59:54.003 回答