conception de base de données pour les 'followers' et 'suivants'?

Chers de la base de données des experts/programmeurs:

J'ai une table mysql avec les utilisateurs de l'information, tels que

id      user_id         name etc.
1       userA            
2       userB   
3       userC
..      ..
..      ..

Je veux créer une fonction comme les "suivre" d'autres utilisateurs de quelque chose comme twitter. Un utilisateur peut suivre userB, ou userB peut suivre userA, ou les deux, peuvent suivre les uns les autres.
Pour cela, dois-je créer 1 table, permet de dire que les disciples

id      user_id     follower_id
1           userA       userB
2           userC       userA
3           userA       userC
4           userB       userC
5           userX       userA

Maintenant, je veux savoir qui est à la suite d'une userA. J'avais donc qqch comme:
Sélectionnez * à partir d'adeptes où user_id = userA
Cela permet de sélectionner l'utilisateur b et userC. C'est ce dont j'ai besoin.

Maintenant je veux trouver un, personnes qui userA, est le suivant (par exemple dans le tableau ci-dessus, l'utilisateur est à la suite userC et userX. Puis je devrais faire quelque chose comme
Sélectionnez * à partir d'adeptes où follower_id=userA.

Ma question est, est-ce conception de base de données pour corriger ce problème (vu dans l'esprit de la base de données de redondance et d'optimisation?) Ou il peut être mieux que cela? Merci.

  • BTW, à la suite des c'est faux
InformationsquelleAutor tcj | 2011-02-04