2010-11-02 6 views
0

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?

+1

-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. –

Répondre

0

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.

1

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à.

+0

+1 Je préfère faire les deux (stocker les historiques de versions avec les diffs). – webbiedave

+0

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. –

-1

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.

Questions connexes