La solution dans ce cas serait une clé primaire composite, créé sur plus d'une colonne. Le modèle suggéré plus tôt devient alors :
+----------------+ +-------------------+ +------------------+ +-------------------+
| modules | | chapitres | | briques | | sequences |
+-----------+----+ 0/n 1/1 +--------------+----+ 0/n 1/1 +-------------+----+ 0/n 1/1 +--------------+----+
| idmodule | PK |-----------| idchapitre | PK |-----------| idbrique | PK |-----------| idsequence | PK |
| nommodule | | | idmodule | FK | | idchapitre | FK | | ranksequence | PK |
+-----------+----+ | nomchapitre | | | nombrique | | | idbrique | FK |
| rankchapitre | | | rankbrique | | | nomsequence | |
+--------------+----+ +-------------+----+ +--------------+----+
Une clé primaire est toujours une valeur unique, mais lorsqu'on crée une clé composite, c'est chaque composition qui est unique, par exemple, si tu as une brique avec un idbrique qui vaut 1 mais qu'elle existe avec trois rank différents, alors les trois clés primaires seront 1/1, 1/2 et 1/3.
Est-ce que ça résoud ta question ? :)
______________________________________________________________
Une question bien formulée, c'est un problème bien compris : ça représente déjà les 3/4 de la réponse ;)