2 votes

Création d'un flux d'actualités en temps réel

Je dispose d'une base de données contenant de nombreuses tables : [followers, favorites, posts ...etc)

Ces tables définissent les différentes activités qu'un utilisateur peut réaliser, il peut envoyer des messages, ajouter d'autres personnes à ses favoris et suivre d'autres utilisateurs.

Ce que je veux faire... c'est extraire des données de ces tables, et créer un flux d'actualités en temps réel.

J'ai deux options:

1- Créer une table séparée pour les notifications (afin de ne pas avoir à obtenir des données de plusieurs tables), puis utiliser un minuteur en Javascript pour retourner les résultats toutes les x secondes.

2- Utiliser un serveur XMPP... qui envoie (ou pousse) des notifications toutes les x secondes, sans envoyer réellement de requêtes ajax.

Et pour ces deux options, je ne sais pas si je dois me connecter à ces tables pour obtenir le flux d'actualités, ou simplement créer une table distincte pour les notifications.

J'ai recherché sur le sujet, mais je n'ai pas encore trouvé quelque chose de vraiment utile, tous les liens seront appréciés.

2voto

Curtis Mattoon Points 3644

Si vos données sont normalisées, vous devriez être en mesure de récupérer toutes les données avec une seule requête (en utilisant des JOINs), ou vous pourriez essayer de créer une Vue si vous souhaitez interroger à partir d'une seule table. Il est toujours préférable de garder vos données dans les tables appropriées pour éviter d'avoir à dupliquer les données.

Les notifications push sont plus faciles sur le serveur, car elles ne reçoivent pas de demandes de chaque client. Selon votre charge, vous pourriez probablement vous en sortir avec des demandes AJAX simples.

2voto

srain Points 3294

La demande de flux d'actualités sera très fréquente. Vous devez donc veiller à ce que votre code s'exécute rapidement et utilise le moins de ressources (temps CPU, requête de base de données) possible.

Je vous suggère de choisir la première option. Elle répond à vos besoins et est assez simple.

Comme vous avez de nombreuses tables, elles vont toutes devenir de plus en plus grandes jour après jour. Chaque fois que vous les connectez pour obtenir un flux d'actualités, cela prendra du temps et augmentera la charge de votre base de données. De plus, votre requête SQL sera complexe.

Comme l'a dit @Curtis Mattoon : évitez de dupliquer les données, mais parfois, nous devons utiliser plus d'espace pour gagner du temps.

Je vous suggère donc de créer une nouvelle table pour stocker les données de notification. Vous pourrez même supprimer régulièrement les anciennes données de cette table.

En même temps, votre code sql et php pour le flux d'actualités sera simple et rapide.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X