Question

Je vais implémenter un langage de formatage léger (probablement Textile, peut-être Markdown) dans un projet sur lequel je travaille, et je me demande comment mieux le stocker dans la base de données.

Si l'utilisateur parvient à modifier le contenu qu'il publie, il est logique que le balisage d'origine non converti soit stocké de sorte que l'utilisateur ne soit pas obligé de modifier le code HTML la prochaine fois. Mais puisque le contenu sera affiché beaucoup plus que modifié, il est également judicieux de stocker une copie convertie du contenu afin que l'original ne soit pas obligatoirement envoyé via Textile sur chaque affichage de page.

La pratique habituelle est-elle donc de stocker côte à côte le contenu original et le contenu converti dans la base de données? Y a-t-il un meilleur moyen?

Merci!

Était-ce utile?

La solution

Store markdown:

  • Chaque vue = conversion
  • Chaque édition = pas de traitement

Store html

  • Chaque vue = pas de traitement
  • Chaque edit = convertir en démarque

Stocker les deux

  • Chaque vue = pas de traitement
  • Chaque modification = conversion en HTML après modification

Vous devez peser vos coûts de traitement par rapport à vos coûts de stockage.

Autres conseils

Vous devez définitivement stocker le balisage Textile / Markdown d'origine et utiliser le contenu de la mise en cache HTTP standard (Dernière modification, Expires-At, ETag) pour mettre en cache les pages rendues ou simplement mettre en cache le résultat du traitement du marquage.

J'utilise actuellement Markdown avec PHP. Je stocke le markdown-source dans la base de données et j'affiche la version convertie à la demande. Je n'ai aucun problème de performances et je suis très heureux de cette configuration.

Ce que j'ai vu, c'est en effet stocker le code HTML compilé dans une ligne séparée de la base de données. Il suffit d'avoir une ligne 'content' et une autre 'content_html', et enregistrez le code HTML compilé dans la ligne 'content_html'.

(Vous avez sûrement une méthode de sauvegarde que vous pouvez remplacer pour le faire?)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top