mySQL: Relations multiples entre instances

Céroce

Membre actif
Bonjour à tous, pour une fois, c'est moi qui ai besoin de votre aide.


Voilà ce que je veux faire:

Je souhaite stocker des articles dans une base mySQL. Pour cela mon modèle de document est construit ainsi:
Chaque dossier contient plusieurs pages qui elles-mêmes contiennent plusieurs sections.
Evidemment, il y a plusieurs dossiers, le nombre de pages par dossier est variable, ainsi que le nombre de sections par page.


Voilà où j'en suis:

J'ai défini le format d'un dossier:
Bloc de code:
	id	titre		idPremierePage	idDernierePage

celui d'une page:
Bloc de code:
	id	titre		idPremiereSection	idDerniereSection

et enfin d'une section:
Bloc de code:
	id	titre		codeHtml


Et mon problème:
Ce système ne me convient pas. En effet, ce principe de stocker la gamme d'id impose que les id se suivent, ce qui m'empêche de rajouter des pages sans recalculer tous les id derrière, et impose d'échanger les contenus de deux pages pour en changer l'ordre…


Je suis sûr que quelqu'un a déjà été confronté à ce problème. Quel est votre solution? Merci de votre aide!
 
Si j'ai bien compris ce que tu me suggères, j'aurais ça:

dossier:
id titre titreTablePages


ça ne me semble pas une très bonne idée, parce que cela signifie que pour chaque page je vais devoir créer une table des sections. Ca va commencer à faire beaucoup de tables, (300 pour 30 articles de 10 pages) qui en plus ont toutes le même format. Si je fais pareil pour les sections, ça me fait encore plus de tables!
 
Je vais peut-être dire une bêtise mais si tu faisais :

Format d'un dossier:

Bloc de code:
          id    titre
Celui d'une page (pour le déplacement des pages c'est au rédacteur à inverser les contenu par copier-coller) :

Bloc de code:
          id    titre        iddossier
Quant aux sections si la page est constuite sur la séparation contenu+présentation+sémantique (html+css), il «suffit» (kof kof) de faire comme wikipedia : les sections (ainsi que le sommaire) se génèrent tout seul à partir de la hiérarchie des titres et sous-titres. ;)
 
Merci!


Je crois que c'est la bonne solution. Je partais du principe que le dossier savait quelles pages il contenait, alors que ce que tu me proposes c'est que c'est la page qui sait à quel dossier elle appartient.

Plutôt que faire du copier-coller pour changer l'ordre, je pense que chaque page pourrait stocker quelle est sa place.


Merci aussi à Averell de m'avoir répondu, gràce à vous je vais enfin pouvoir changer le monde!