vince Le 09/04/2008 à 22:43 Est-ce qu'un système de liens "backref" existe sous mysql ? Si oui, la performance en vaut elle la peine ?
explicatoin de ce que j'entends par backref :
On a une base de données "bibliothèque"
Une table contient les sujets, une table contient les livres. Un livre a un champ "sujet principal" qui est un lien vers la table sujet.
Le lien backref permet d'obtenir la liste des livres sur un sujet sans faire de select sur la table livre.
Le lien de type "setof" que représente "sujet principal" a un fonctionnement de retour qui permet de le prendre par l'autre bout
Ca gonfle souvent les quantités de données mais ça a l'énorme avantage d'augmenter les performances et de réduire le nombre de requètes.
Si je demande ça c'est parce que je voudrais être sur que ça existe de manière automatisée, c'est à dire que une fois le lien backref déclaré, un insert dans la table livre vienne peupler le backref sans que je soit obligé de le faire moimême ou par le biais d'un trigger bdd... vince Le 09/04/2008 à 22:55 en fait j'ai un cas où on peut considérer que ça va être indispensable...
mais bon, tu as l'air de confirmer ce que je pensait : pas de backref en builtin...
et sinon, tu lui connais un équivalent (en nom) ? un synonyme...
kim Le 09/04/2008 à 23:03 tu peux tenter de passer par une procédure stockée, ça ferait déjà ça de gagné... mais ça reste pas du builtin.
Pour un nom ou synonyme... Je vois pas, mais ce que tu cherches, je pense qu'on peut dire que c'est une BDD objet de type celle de Zope
Il n'a pas de mots
Décrire son mépris
Perdre les rênes
Il a perdu la foi
vince Le 09/04/2008 à 23:06 mouais mais je peux pas changer, mysql et rien d'autre.
(pour reprendre la comparaison, j'ai plus de 50 000 sujets et le nombre de livre ira croissant... et il n'y a pas de possibilité de "pagination puisque les requêtes sur les sujets peuvent se faire par lots de 1000. or pour chaque ligne du lot, il faut que sache au moins le nombre de livres sur le sujet et je me vois mal, pour une requête de lot qui est déjà conséquente, faire 1000 requêtes sur la base des livres... même avec les index ça reste lourd...)
kim Le 09/04/2008 à 23:14 stocker le nombre à chaque insertion dans la table sujet ? C'est bourrin, mais on peut considérer que tu vas moins insérer que consulter, donc tu vas perdre un pouieme à l'insertion et un peu en espace, et gagner x pouièmes à la consultation...
Tes contraintes sont plutôt où ? hard limité ? quelle partie doit être la plus optimisée (a priori celle la plus réalisée et celle considérée comme la plus banale par l'utilisateur, m'enfin ça dépend de l'utilisation finale & contraintes)
Il n'a pas de mots
Décrire son mépris
Perdre les rênes
Il a perdu la foi
vince Le 10/04/2008 à 21:27 les triggers sont largement expérimentaux sous mysql5, c'est une des raisons qui fait que j'aimerais m'en passer
vince Le 11/04/2008 à 08:23 un lien setof c'est ce qu'on a dans la table livre pour pointer sur le sujet