Notre client souhaite que nous mettions en œuvre l'historique des modifications pour les articles de site Web. Quelle est la meilleure façon de le faire?Quelle est la meilleure façon de stocker l'historique des modifications des articles de site Web?
Répondre
Je présume que vous utilisez un CMS. Sinon, utilisez-en un. WordPress est un bon début.
Si vous développez à partir de zéro, la méthode habituelle est d'avoir deux tables: une pour les informations de la page (si le titre, la position du menu, etc.), puis une table page_content
, qui a des colonnes pour page_id
, content
et timestamp
.
Comme vous enregistrez une page, au lieu de mettre à jour une table de base de données que vous écrivez à la place une nouvelle enregistrement à la table page_content
avec l'ID de la page et le moment de la sauvegarde. Ainsi, lorsque vous affichez des pages sur votre frontal, vous sélectionnez simplement le dernier enregistrement pour cet ID de page en particulier, mais vous avez également un historique de cette page en interrogeant tous les enregistrements par page_id
, triés par timestamp
.
Sans trop savoir au sujet de votre pile d'application particulière (cadre, langue), vous disposez d'au moins deux approches fondamentales:
Versioned enregistrements - Au lieu de stocker des articles comme une seule ligne dans une base de données (ou un seul fichier dans un système de fichiers) et mise à jour avec des modifications, créez simplement un nouvel enregistrement avec un pointeur vers ses versions précédentes. Si vous êtes sur Rails, vous pouvez consulter this Railscast about Model Versioning
diffs séquentielle - Une autre approche est de garder une copie actuelle du document, mais conserver un historique des modifications apportées par les utilisateurs. S'il s'agit d'un document texte simple, ces modifications peuvent être représentées par un correctif
diff
. Wikipedia "diff" pour plus d'informations.
Si vous avez encore besoin d'aide, parlez-moi plus de votre configuration/exigences, et nous pouvons le comprendre à partir de là.
+1 Je préfère faire les deux (stocker les historiques de versions avec les diffs). – webbiedave
Cela ressemble beaucoup à l'intégration de subversion pour moi. C'est toujours une idée brillante d'intégrer l'intégration de subversion, oui c'est peut-être beaucoup plus difficile à faire, mais les frameworks sont déjà là pour être utilisés. –
Il y a une grande variété de façons de le faire, comme vous l'avez mentionné en taguant php, .net, python et ruby. Vous avez manqué quelques-uns du haut de ma tête perl et jsp. Chacun d'entre eux ont leurs avantages et inconvénients et est vraiment une question de ce qui convient le mieux à vos besoins. PHP est probablement la récompense la plus rapide pour le temps passé. Ruby, je suppose Ruby on Rails, est le Bingo Buzz Word automatique pour la journée. .Net, êtes-vous tous microsoft partout et souhaitez une intégration facile avec votre serveur d'échange et une API Outlook? python? Aimez-vous les langues scriptées mais vous êtes trop bon pour php et ruby. Chacune de ces langues a ses points forts et ses inconvénients et c'est vraiment une question de savoir ce que vous savez, combien vous devez dépenser, et quel est votre calendrier.
- 1. Quelle est la meilleure façon de stocker des fichiers dans une application web (asp.net + wcf)
- 2. Quelle est la meilleure façon de stocker des données centralisées pour (et de) la traduction?
- 3. iPad - meilleure façon de stocker des données
- 4. Quelle est la meilleure façon de manipuler et de stocker d'énormes listes ordonnées ou des hachages?
- 5. Quelle est la meilleure façon de stocker des données html dans une base de données mysql?
- 6. Quelle est la meilleure façon de stocker des variables de classe en PHP?
- 7. Quelle est la meilleure façon de stocker des fichiers multimédia sur une base de données?
- 8. Meilleure façon de stocker des URL localement
- 9. Quelle est la meilleure façon de filer des tweets?
- 10. Quelle est la meilleure façon de créer des déploiements ClickOnce
- 11. Quelle est la meilleure façon de transmettre des ressources?
- 12. Quelle est la meilleure façon de stocker des données sur un nœud TreeView?
- 13. Quelle est la meilleure façon de stocker des messages texte? Quelque chose comme SMS
- 14. Quelle est la meilleure façon de stocker des données d'historique dans SQL Server 2005/2008?
- 15. Quelle est la meilleure façon de stocker des données telles que «Favoris» sur une application Android?
- 16. Quelle est la meilleure façon de stocker rapidement des données en Python?
- 17. Quelqu'un peut dire quelle est la meilleure façon de stocker des images en SQL
- 18. Quelle est la meilleure façon de diffuser de l'audio sur un site Web?
- 19. Quelle est la meilleure façon de permettre aux utilisateurs d'envoyer des images audio ou vidéo à notre site Web?
- 20. Quelle est la meilleure façon de charger la balance? PHP
- 21. Quelle est la meilleure façon de vérifier si un dossier de site Web existe?
- 22. Quelle est la meilleure façon de détecter le code de pays d'un site Web?
- 23. La meilleure façon d'afficher des informations statistiques sur un site?
- 24. Quelle est la meilleure façon de rediriger un site Web ASP complet vers un nouveau domaine?
- 25. Quelle est la meilleure façon de partager une logique commune entre des sites Web identiques gérés par des modèles?
- 26. Quelle est la meilleure façon de télécharger un dossier sur un site Web?
- 27. Meilleure façon de stocker les critères Badge?
- 28. Quelle est la bonne façon de transférer des prospects d'un site Web à un CRM local?
- 29. Quelle est la meilleure façon de faire des modèles de sites et des thèmes avec Wicket?
- 30. Quelle est la meilleure façon de stocker l'ordre entre les lignes de la base de données?
-1: "Meilleur" est indéfini. Fournissez quelques critères. Qu'est-ce qui est important pour vous ou votre client? Il n'y a pas de pile technologique: pas de framework, pas de langage spécifique, pas de base de données, pas de background. Si c'est un devoir, c'est une mauvaise paraphrase des devoirs. S'il vous plaît fournir quelques détails à l'appui. Soyez précis s'il vous plait**. S'il vous plaît définir ce qui est ** meilleur ** pour vous. –