2009-03-06 5 views
1

Je dois produire un système de versionnage pour stocker plusieurs versions de mes articles dans une base de données pour permettre à l'utilisateur de revenir en arrière si nécessaire. Mes premières pensées sont quand l'utilisateur veut éditer un article vraiment je reçois le sql pour ne plus mettre à jour mais vous insérez leur information dans la base de données. Actuellement le problème est que j'ai une table d'articles et j'utilise l'ID comme clé primaire pour identifier mon article (ainsi lisez plus de liens et ainsi de suite). Si j'insère dans cette table, je vais avoir de nouveaux articles de base, donc je pense que j'ai besoin d'une nouvelle table pour les anciens articles, mais j'ai un problème avec les originaux dans cette première table dbArticles, j'ai aussi besoin de savoir J'ai choisi, par exemple, s'ils ont 3 éditions donc 3 articles permet de faire tous les jours séparés 1er, 2ème et 3ème comment je dois montrer qu'ils ont choisi la version du 2 mai plutôt que la dernière le 3 mai. Toute aide serait grandement recevoir grâce,Quelle est la meilleure façon d'implémenter le versioning dans une base de données MYSQL?

Cool Hand Luke Uk

Ps Je me sers aussi PHP et je suis articles Horodatage: D.

Répondre

8

Have 2 tables:

  • article: vous stockez article_id, nom de l'article et toutes autres données méta
  • de article_version: vous stocker chaque version de l'article (y compris celui d'origine) et le lien avec article_version.article_id = article.article_id. Veillez à ajouter un horodatage et une version etc. dans ce tableau.
+0

Bonne réponse, je viens de mettre en place un schéma comme celui-ci il y a une semaine pour une application qui nécessitait un versionnage lourd. En fin de compte, vous voudrez peut-être trouver des règles pour savoir quand les anciennes versions peuvent être supprimées pour libérer de l'espace. –

+0

Il peut y avoir quelques problèmes de performance avec cette approche. Une réponse à cela, est d'avoir une certaine redondance contrôlée (par exemple avoir la dernière version stockée dans article.latest_version_id) – troelskn

+3

@troelskn: je suis d'accord, la redondance n'est pas toujours aussi mauvaise que les gens semblent penser. – tehvan

0

Si vous êtes après le versionnage d'articles textuels, vous devriez envisager d'utiliser un wiki, par exemple MediaWiki. Ils ont peut-être résolu le problème pour vous.

Questions connexes