这是一个简单的问题。
使用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实现多个帖子/响应?
由于
答案 0 :(得分:5)
这将是多对一的关系。你可以有:
回复表
id (response id)
bugid (bug id)
columns related to the response
或
回复表
id (response id)
columns related to the response
与
bugresponse table
responseid (response id)
bugid (bug id)
columns related to the bug-response relationship
第二种设计也可以处理多对多关系(在这种情况下可能不太必要),并且还可以根据您的要求提供其他一些好处。
答案 1 :(得分:2)
您使用回复创建另一个表。例如布局
id (Response Id),
responseTo (id of the Bug this is a response to),
by (person responding),
content (Contents of Response)
responeTo是关键领域。然后,当您想要查看对错误的所有响应时,您只需从响应表中选择responseTo = currentBugId。
答案 2 :(得分: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
设置为适当的值。
干杯!