2009-06-08 5 views
1

c'est une question simple. Avec PHP et MySQL, j'essaye de créer une application de rapport de bogue.Comment avoir plusieurs réponses dans l'application de publication?

Actuellement, l'utilisateur peut publier des bogues et une liste de bogues est présentée au technicien/administrateur.

Comment puis-je faire en sorte que de nombreux techniciens ou administrateurs peuvent répondre au rapport (fil?)

Comme dans les deux la mise en page de table MySQL et PHP de codage?

Le courant table MySQL a mise en page:

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) 

donc pas encore la colonne de réponse, mais comment puis-je obtenir plusieurs post/réponses avec PHP et MySQLi?

Merci

Répondre

1

En règle générale, vous créez une table distincte pour les réponses. Dans ce tableau, vous avez un champ qui "pointe" vers la première table. Il pourrait ressembler à ceci:

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

De cette façon, vous pouvez avoir beaucoup de réponses qui tous les points de retour à un bug, et donc vous avez pratiquement créé une « propriété » ou « relation ». Il est habituel d'appeler une relation comme celle ci-dessus un "un à plusieurs" si nous prétendons que nous sommes dans la table des bugs, en regardant dehors. (Et un "plusieurs à un" de nous sommes dans la table des réponses, en regardant la table des bugs.)

Puis, en PHP, quand vous voulez récupérer toutes les réponses appartenant à un bug, vous faites quelque chose comme ceci: (pseudo code)

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

Voilá! Maintenant vous avez le bug et toutes ses réponses, classés par date de création.Lorsque vous insérez de nouvelles réponses, vous devez définir bug_id sur la valeur appropriée, bien sûr.

À la votre!

+0

created_at? Dans mes réponses, ce tableau serait daté. – bear

+0

date, bien sûr! created_at = abréviation de created_at_date. Toute question de goût! – 0scar

5

Ce serait une relation plusieurs-à-un. Vous pouvez avoir:

réponses Tableau

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

ou

table de réponse

id (response id) 
columns related to the response 

avec

table bugresponse

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

où la deuxième conception peut également gérer la relation plusieurs-à-plusieurs (probablement pas nécessaire dans ce cas) et peut également avoir d'autres avantages en fonction de vos besoins.

2

Vous créez un autre tableau avec les réponses. Par exemple avec la mise en page

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

Où responeTo est le domaine crucial. Ensuite, lorsque vous voulez voir toute la réponse à un bogue, vous n'avez qu'à sélectionner dans la table de réponses où responseTo = currentBugId.

Questions connexes