Bonjour,
Je travaille sur un projet assez important de gestion de magasin (articles avec familles, clients avec familles, fournisseurs, gestion financière, gestion des envois et réceptions des colis, livraisons, et bcp d'autres choses...) et le tout doit être multi-langue (nombre de langue variable) dans la base de données. J'ai donc une table des langues.
Pour mieux comprendre l'ensemble voici un exemple de problème résolu : les familles d'articles.
Voici les tables à disposition : langues, articles, familles_articles, langues
Pour gerer les noms de familles d'articles dans les différentes langues j'ai donc créer une table pour gerer les noms et description de familles d'articles dans une langue donnée:
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 CREATE TABLE noms_fam_art ( fam_art_id integer NOT NULL, nom_fam_art nom NOT NULL, description text, langue_id integer DEFAULT 0 NOT NULL ) ALTER TABLE ONLY noms_fam_art ADD CONSTRAINT noms_fam_art_pkey PRIMARY KEY (fam_art_id, langue_id); ALTER TABLE ONLY noms_fam_art ADD CONSTRAINT noms_fam_art_fk_langue_id FOREIGN KEY (langue_id) REFERENCES langues(langue_id); ALTER TABLE ONLY noms_fam_art ADD CONSTRAINT noms_fam_art_fk_fam_art_id FOREIGN KEY (fam_art_id) REFERENCES fam_art(fam_art_id) DEFERRABLE;
Je coince sur la gestion des données sur les données (metadata) de la table des articles...exemple : pour des disques durs j'ai besoin de connaitre (temps d'accès, vitesse de rotation, ...) mais pour des écrans (temps de réponse, contraste, luminosité, ...)
Ma 1ère approche me donne ceci :
Mais cela me pose plusieurs problèmes :Table metadata(
meta_id
) clé primaire(meta_id)
Table noms_meta(
meta_id,
langue_id,
nom,
description,
unité
) clé primaire(meta_id, langue_id)
Table meta_art(
art_id,
meta_id,
valeur
) clé primaire(art_id, meta_id)
- je ne vois pas comment d'implémenter les différents type de données (texte, boolénne et numérique)
- je n'aime pas cette idée de table metadata avec une seule colonne...
Merci d'avance pour vos remarques/idées.
Partager