[spip-dev] Rôle du tableau 'join' lors d'une déclaration d'une nouvelle table

Je suis occupé de faire un grand récapitulatif sur les ajouts de
table, table de jointure et boucle là :
http://doc.spip.org/ecrire/?exec=articles&id_article=5860

Dans le code de SPIP je vois (là :
http://zone.spip.org/trac/spip/browser/branches/spip-2.0/ecrire/base/serial.php
) des déclarations de tables via 3 tableaux:
- 'field' : Ok, on vois bien ce que c'est,
- 'key' : Ok aussi, c'est les clés et clés primaires sql ,
- 'join' : c'est là tout mon problème.

A quoi sert ce tableau 'join' ? Vu que d'un coté on déclare là
jointure via le pipeline "declarer_tables_auxiliaires" et le tableau
qui vas bien, je me suis d'abord dis : c'est les champs qui vont faire
la jointure". Mais comment alors SPIP sait que "tel colonne sert avec
tel table de jointure" ?
Je ne sait donc pas à quoi sert ce tabeau...

Qu'elqun pourrait-il m'aider ? Lancer une piste que je pourrais exploiter ?

Mille merci,

Seb

oui ce sont les champs candidats pour les jointures.
Sachant qu'en l'absence de ce tableau, les candidats sont les cles primaires, puis les autres cles.
En general c'est suffisant, mais il est parfois necessaire de pouvoir préciser une autre cle.
Quand a quel champ utiliser dans quelle jointure, Spip se debrouille pour trouver le chemin entre 2 tables sur la base meme nom=meme champ
C'est en general non ambigu, mais il peut arriver que 2 champs soient possible pour joindre une meme table, d'ou ce 'join' qui permet eventuellement de retirer une cle des candidats