Gestion par MySql d'articles longs et de longueurs différentes

Résolu
mentral Messages postés 56 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 22 janvier 2008 - 31 oct. 2005 à 21:05
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006 - 31 oct. 2005 à 22:12
Bonjour à tous...



Voilà le problème : je désire gérer via MySql une collection d'articles
longs, découpés en paragraphes, chaque paragraphe étant doté d'un titre
et tous les articles n'ayant pas le même nombre de paragraphes. Le but
est d'afficher ces articles sur un site web avec les paragraphes
correctement séparés.



Une première solution pour gérer l'affichage des paragraphes serait la
suivante : dans la base, prévoir un champ unique pour le contenu de
l'article (donc l'ensemble des titres et des paragraphes) et entrer
comme valeur dans ce champ le contenu effectif agrémenté de balises
html.

Exemple en vrac du contenu d'un tel champ :



Titre du premier paragraphe

Contenu du
premier paragraphe

<Titre du second
paragraphe>

Contenu du second paragraphe




Le problème de cette solution est que les instructions d'affichage (en
l'occurence les balises et

) feraient partie
intégrante du contenu de la base, ce qui n'est pas très pratique (en
terme de gestion de contenu) et assez inélégant.



Une seconde solution serait de stocker les articles dans des fichiers
xml, qui n'ont pas la rigidité structurelle d'une base MySql : rien
n'empêche de créer une série de fichiers xml à raison d'un par article,
obéissant tous à la même dtd qui encapsulerait chaque paragraphe dans
des champs et par
exemple, et pourrait en mettre autant que l'on veut à la suite et
différemment pour chaque fichier.



La solution rêvée (on y arrive...) serait de combiner la souplesse du
xml à la solidité de MySql, quand même plus à même de gérer une
recherche, plus rapide, etc.



Quelqu'un aurait-il une idée ?



[ MENTRAL ]

Programmez ! Vous êtes filmés...

1 réponse

monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
31 oct. 2005 à 22:12
Tu peux à la rigueur créer un sytème hiérarchique en une seule table de cette façon :

table article :

- id

- titre



table paragraphes :

- id

- id_article

- id_paragraphe_pere

- titre

- contenu



De cette sorte, tu lies bien évidemment chaque paragraphes à son
article, mais tu peux aussi via id_paragraphe_pere créer une hierarchie
entre les paragraphes d'un même article.



Le seul problème, c'est que pour afficher tout ça il te faudra imbriquer des boucles... C'est pas le top.



Evidemment ça serait le pied si on pouvait utiliser CONNECT BY PRIOR
... Mais malheureusement ce n'est pas (encore) implémenté dans MySQL
v__v
3
Rejoignez-nous