Organiser les tables dans les bases de données
Après avoir réfléchi sur l’architecture, cf. « Votre maison FileMaker (3), entrons un peu plus dans le concret de nos besoins !
Combien de pièces aura notre maison ?
Une maison, c’est notre quotidien, que l’on y habite seul ou avec une famille nombreuse.
Il en va de même pour une base de données, que l’on soit seul utilisateur ou que l’on en partage l’accès à plusieurs via un réseau local.
Une maison est organisée avec des pièces à fonctionnalités variées. Même si vous optez pour un grand loft à pièce unique, il y aura sans doute les WC séparés, et je ne pense pas que vous gariez la voiture dans la zone salon ! Plus traditionnellement, vous aurez sans doute une cuisine, des chambres (combien ?), une salle de bain, … voire une buanderie, une salle de jeux, un bureau, … Chaque pièce a une fonction et on y trouve des ustensiles adaptés à cette fonction. Certes, tout le monde n’est pas le roi ou la reine de l’ordre. Mais il semble plus facile et plus logique de chercher une casserole à la cuisine et un livre à la bibliothèque. Encore que, les livres de recettes culinaires, … 😉
La maison de nos données doit, elle aussi, être organisée. Je peux faire un grand loft et tout mettre au même endroit. C’est d’ailleurs ce que font beaucoup d’utilisateurs à leurs débuts. Ils font ce que l’on appelle des « fichiers plats » (pas vraiment relationnels).
Tant qu’ils sont seuls, qu’il n’y a pas des milliers de données, ils vivent très bien dans leur loft virtuel. Mais immanquablement arrive le jour où d’autres doivent aussi l’utiliser et où chacun ne range pas forcément la même chose au même endroit, ou pas de la même façon, … et les problèmes commencent. Les données devenant plus nombreuses et généralement plus complexes avec le temps, cela n’arrange rien. Et le jour où l’on veut enfin organiser autrement… Bonjour la galère !
On a donc intérêt, si l’on fait bâtir, à bien réfléchir aux pièces voulues, quitte à en prévoir certaines sur le plan, et ne les réaliser que plus tard, faute de temps ou de budget. Les pièces de notre demeure physique correspondent aux « tables » de notre base de données.
Non, il ne s’agit pas de la table de la cuisine ou de la salle à manger. Le mot « table » désigne une partie de notre base de données, comme les pièces sont une partie de la maison physique. On range dans une table, les données qui concernent une même « entité ».
Enfin, chaque pièce a ses lieux de rangement (placard, commode, tiroirs, étagères,…) comme chaque table a ses rubriques.
Nous aurons par exemple la table « Organisme » pour y ranger tout ce qui concerne les organismes clients (raison sociale, statut juridique, nombre de salariés, …) comme nous mettrons dans le salon la télévision, la chaîne HI-FI, le canapé, les bibliothèques,…
La table « Personne » ne traitera que des personnes physiques et nous y trouverons le prénom, le nom, l’âge, … comme la chambre accueillera quant à elle le lit, la penderie, votre petit secrétaire Louis XVI, un miroir, …
Un modèle de type « Loft » aura une seule table « Client » où on mélangera l’organisme et la personne, obligeant ainsi à répéter pour chaque personne les données d’un organisme, si nous connaissons plusieurs personnes dans un organisme. Cela paraît plus simple au début, mais on change d’avis avec le temps…
Mais, direz-vous, comment peut-on faire avec toutes ces tables ? Comment trouver ce que je cherche ? Eh bien, c’est comme dans l’autre maison, vous savez, celle avec des murs et des couloirs…
Précisément, on y circule via les couloirs, les portes, … comme les données circulent grâce au relationnel de notre base. J’entends bébé pleurer alors que je suis dans le salon, j’emprunte le couloir pour aller à sa chambre, puis de là je vais à la cuisine pour réchauffer son biberon.
Mieux, on peut voir parfois d’une pièce à l’autre, via une vitre, un comptoir, … ou entendre grâce à un interphone. Ainsi je peux entendre bébé pleurer, même s’il est à l’étage car j’ai mis un interphone mobile, branché dans une simple prise de courant (ou carrément une petite webcam).
De façon analogue, je peux, sur un écran de la table « Organisme » voir un tableau des salariés de cette entreprise, c’est à dire voir « à travers » la table « Personne » les fiches qui sont reliées à l’entreprise affichée. Si la base de données est bien conçue, c’est tout aussi transparent et intuitif pour l’utilisateur que lorsqu’il se déplace dans les pièces chez lui.
Mais si c’est mal conçu, ou fait de rajouts successifs non anticipés, ou peut avoir des surprises. De la sorte, si la cuisine et la salle à manger ont été pensées séparément, sans communication entre elles, il faut partir de la cuisine, sortir sur la terrasse, descendre dans le jardin, remonter par le garage, pour apporter le plat chaud aux invités… Outre qu’ils sont obligés d’attendre, le plat n’a de chaud que le nom !… et les prochaines invitations ont de fortes chances de se limiter aux capacités d’accueil et à la simplicité de la cuisine, tant une telle procédure est peu fonctionnelle !
Traduit en base de données, passer par de tels chemins détournés donnera des accès très lent. Ne riez pas ! On rencontre une telle situation très souvent… ! Et il n’est pas toujours possible de percer, après coup, une porte ou même un simple passe-plats, entre la cuisine et la salle à manger…
D’où l’importance de l’analyse préalable. Il faut avoir une idée la plus précise possible de ce que l’on veut comme maison ; il en est de même pour la base de données. Quelles sont les données à gérer ? C’est-à-dire, quelles sont les tables et les rubriques nécessaires pour bâtir la maison de mes données ?…
Penser à aujourd’hui… et à demain !
On peut rêver à une grande maison, ou prévoir un garage ou une piscine plus tard, et se limiter à la bâtisse principale aujourd’hui pour des raisons financières ; il en est de même pour la base de données. Je peux faire aujourd’hui le suivi client (organisme, personne, historique, action,… par exemple), mais prévoir d’y ajouter plus tard les devis, factures, règlements,…
La famille peut s’agrandir et on ajoute une pièce ou on monte un étage, du moins si les fondations sont assez solides et si on a anticipé la chose au démarrage. Il en est de même pour la base de données. Il faut que ma structure soit bien pensée pour ajouter des tables sans être obligé de tout casser.
Dans la même idée, nous calculerons son implantation en fonction d’une éventuelle future piscine, quitte à réduire la surface au sol de la maison. Et si nous prévoyons plus tard un lien entre notre base de données et un site Web, ou une autre base (lien ODBC avec une base MySql par exemple) il vaut mieux adapter notre façon de nommer des tables et rubriques (ne pas utiliser d’espace, ou de caractère accentué, ou…).
Penser la maison de demain à travers la maison d’aujourd’hui !
À suivre… prochain épisode : le terrain
Michel Lansard
NB : Cet article appartient à une « série ». Pour la lire depuis le début, cliquez sur le lien : Votre maison FileMaker.
Aller à l’article précédent de la série – Aller à l’article suivant de la série
Tags: Maison des données
Merci de laisser un commentaire (1 commentaire )
Désolé, les commentaires des articles réservés sont eux-mêmes réservés
AliceChiffon
11 ans ago
voilà un article qui me parle. à suivre….
😉