2012-02-17 6 views
0

Je veux créer mon propre système de forums. un forum contient des sujets filetés qui signifie une réponse peut utilisateur au sujet principal et la réponse peut être répondu à nouveau (structure arborescente)Conception de base de données de forum

ma conception de base de données pour est maintenant une grande table qui contient tous les messages. chaque message a un champ 'response_to' qui contient l'identifiant des messages auxquels il répond.

Je ne suis pas sûr que ce soit un bon design d'avoir tous ces messages dans une grande table, même si ça sonne intuitif pour moi. peut-être devrais-je séparer les sujets des messages de réponse? En conclusion, Quelle est la meilleure pratique dans la conception de DB pour le système de forums? Je veux suivre le design des meilleures pratiques et le faire une fois.

alors j'apprécierais votre aide. merci, sock.socket :)

+0

duplication possible de [Quelle est la structure DB optimale pour un forum fileté?] (Http://stackoverflow.com/questions/362215/whats-the-optimal-db-structure-for-a-threaded-forum) –

Répondre

0

Si une réponse peut être répondue (séparément du thread d'origine) alors une table auto-référencée est valide. Vous pourriez trouver exactement la même chose dans n'importe quelle hiérarchie à plusieurs niveaux, par ex. employés et gestionnaires. D'après ma propre expérience, le problème principal n'est pas le codage de la structure arborescente imbriquée, c'est la performance d'un chargement de page lorsqu'un grand nombre de threads doivent être récupérés et affichés, ou l'auto-référencement va à un grand nombre de niveaux.

Veillez donc à vous assurer que vous avez de bons index sur les colonnes MessageID et RespondTo, pour vous aider lors de la jointure.

+0

Salut, d'abord merci pour votre réponse. Je n'ai pas compris ce que vous avez dit au sujet de la performance. que puis-je faire pour le faire fonctionner rapidement? merci – socksocket