Déclarations de jointures

Les liaisons entre tables sont déclarées dans SPIP dans le fichier ecrire/public/interfaces.php. D’autres déclarations peuvent être ajoutées avec le pipeline « declarer_tables_interfaces ».

Cette déclaration peut-être :

// proposer une jointure entre les rubriques et les documents
$tables_jointures['spip_rubriques'][]= 'documents_liens';
// proposer une jointure entre articles et auteurs, en specifiant le champ de la jointure
$tables_jointures['spip_articles']['id_auteur']= 'auteurs_articles';

Cela indique des liaisons possibles entre tables. Lorsque 2 tables peuvent avoir plusieurs champs qui peuvent se lier, on peut indiquer précisément le champ de la liaison.

Exceptions

Il est même possible de créer des jointures lors d’appel à des champs inexistants, par exemple l’appel au critère {titre_mot=yy} peut conduire à une jointure sur la table « spip_mots » alors même que le champ SQL « titre_mot » n’existe pas dans la table de cette manière.
Dans la fonction mots_declarer_tables_interfaces($interfaces) qui implémente le pipeline declarer_tables_interfaces pour le plugin mots :

$interfaces['exceptions_des_jointures']['titre_mot'] = array('spip_mots', 'titre');

Auteur Matthieu Marcillaud Publié le : Mis à jour : 12/03/23

Traductions : English, français, Nederlands