La technique des méta données de sqlPro
Bonjour,
j'ai lu attentivement l'article de sqlPro sur les métadonnées. Il est fort intéressant et se rapproche de ce que j'aimerais mettre en place.
Cependant, j'ai quelques questions :
Il est sous-entendu dans l'article que ce modèle est extrèmement rapide, ma question est donc : Pourquoi inclure des métadonnées dans différentes tables ? Ne pourrait-on pas se contenter d'avoir uniquement n tables composées de clés avec 1 table qui contient les métadonnées de toutes les autres ?
Ex: (très simplifié, 1 objet possède 1 droit et 1 bibliographie)
Table Objet : [Id], titre, etat, [droitId], [biblioId]
Table Droit : [Id], Titre, mentionObligatoire, ConditionsDutilisation
Table Biblio : [Id], Titre, Editeur, Auteur, Fournisseur
Pourrait-être représenté comme cela:
Table Objet : [Id], [droitId], [biblioId]
Table Droit : [Id]
Table Biblio : [Id]
Table Meta: [IdTable], [IdElement],Valeur
Cette représentation est-elle plus rapide ? La table Meta ne risque-t'elle pas de devenir trop grande (500.000 enregistrements c'est trop ? Je travaille avec Postgres sur un serveur bi-processeur avec 2Go).
En prenant un tel système, vaut-il mieux commencer directement à mettre toutes les données dans la table Meta OU mettre les données dans la table correspondante et garder la table Meta pour le cas ou il faudrait rajouter des infos ?
Y-a-t'il un intérèt de mettre dans la table Meta une infos comme le titre (différent pour chaque objet, 512 car. max donc la taille du champs metaValeur sera aussi de 512) ?
Les requêtes SQL ne risquent pas d'être à rallonge si on veut à chaque fois afficher toutes les infos de chaque objet qui correspond à certains critères ?
Je veux dire par là que la solution me paraît intéressante pour une recherche multicritère mais assez lourde lorsque l'on veux à chaque fois obtenir toutes les infos. Je me trompe ?
Merci de bien vouloir m'éclairer,
Borndead.
P.S. Si quelqu'un a des liens sur le sujet, je suis preneur