2009-10-23 8 views
1

J'apprends des requêtes mysql join. Pour faire de la pratique, j'ai décidé de créer des tables pour un site Web comme stackoverflow. J'ai fait trois tables essentiellement.Quel genre de requêtes un site Web comme stackoverflow utilise-t-il?

Question_Thread 
    thread_id 
    title 
    username 
    datetime 
Question_Reply 
    reply_id  
    thread_id 
    text 
Question_Text_Comment 
    comment_id 
    reply_id 
    comment 

Comment puis-je interroger toutes les réponses et les commentaires de chaque réponse? Je ne peux pas trouver une relation ici. Ce n'est pas beaucoup-à-plusieurs, un-à-plusieurs ou un-à-un. Il ressemble à un-à-plusieurs parce qu'une réponse a beaucoup de commentaires. Le problème est que la page de détails de la question a de nombreuses réponses.

s'il vous plaît me conseiller ...

Répondre

2

Question et réponse est un à plusieurs. Répondre et commenter est une relation un-à-plusieurs.

Les propriétés (et les touches) aussi loin que je peux voir ont l'air bien. Je ne vois pas le problème ...

+0

Alors ... dois-je interroger les commentaires de chaque réponse sur le détail de la question (la page que vous consultez en ce moment)? par exemple, s'il y a trois réponses et que chacune d'elles a quatre commentaires. Dois-je interroger trois fois? – Moon

+0

Non, vous n'êtes pas obligé. Vous pouvez utiliser un ORM pour faciliter cela, comme NHibernate, ou Linq-to-Sql (qui est ce que StackOverflow utilise), ou autre. Cela vous permettrait de charger la Question et ses propriétés contiendraient les données requises. Mais si vous utilisez des requêtes SQL nues, alors oui, vous interrogerez trois (ou plusieurs) fois. 1) Obtenez la question, 2) Obtenez les réponses de la question, 3) Obtenez tous les commentaires pour toutes les réponses récupérées. Rappelez-vous, c'est ce que ferait ORM de toute façon, il est juste abstrait pour vous de ne pas trop vous inquiéter. –

+0

ah! Je pensais qu'il y a une requête qui interroge toutes les réponses et les commentaires. – Moon

Questions connexes