Je travaille sur un site web qui permettra d'utiliser les fonctionnalités de réseaux sociaux (comme facebook par exemple).
Je tiens à mettre en œuvre un système de notification qui montre des trucs comme "X de vous ajouter comme ami", "Y vous inviter à la fête", "Z a pris la dernière quizz"... et je ne sais pas comment faire.
Je me demande quelle est la meilleure solution :
- Solution 1, aka "logging".
Dédié table de "notification". J'ai ajouter des lignes dans cette table, chaque fois que quelque chose de cette hausse, une notification dans les parages (un ami l'ajout d', répondre à des quizz, etc.). Le tableau "notification" a des champs qui contient des informations différentes, selon le type de notification est ajoutée à la table.
Bon : facile à coder, la séparation entre la fonction de notification et "normal" les fonctionnalités, pas trop de ressources-de consommer quand j'ai besoin de lire la table.
Mauvais : de la Notification table augmentera probablement très gros (je pense que je vais ajouter 10k lignes/jour dans le tableau), "doublé" de l'information : les informations dans le tableau de communication peuvent être trouvés dans tous les autres table à l'aide de la date/liste/quelle que soit la comparaison.
- La Solution 2, aka "chercher partout".
Chaque fois que j'ai besoin d'afficher la liste de notification ou de le montrer combien les nouvelles notifications il y a, je regarde à tous les concernés de la table, de comparer la date/etc pour savoir si quelque chose de nouveau qui s'est passé depuis la dernière fois que l'utilisateur a coché la notification.
Bon : Pas trop grosses par rapport à la solution 1, pas de "redondance" de l'information.
La mauvaise : j'ai peur parce que le nombre d'utilisateur (~1k+), il rendre le serveur exploser parce que c'est des ressources, de temps, peu plus fort à code ou à maintenir.
Pouvez-vous s'il vous plaît dites-moi ce que tu pense que le mieux et pourquoi, ou vous avez une solution, je n'avais pas imaginé ?
Merci =)
Edit : Disons que j'utilise une base vraiment DB design : les utilisateurs ont des amis, peut faire des quiz. 1 tableau pour la liste des utilisateurs, quizz liste, 1 table quizz<->user rapport, 1 table de l'utilisateur<->de l'utilisateur de l'amitié. A chaque fois qu'un utilisateur visite à son propre profil, il peut voir ce qui s'est passé : nouveau quizz<->user rapport, nouvel utilisateur<->de l'utilisateur de la relation, etc. Comment voulez-vous concevoir une notification comme ça ?