Multiples catégories de produits
Bonjour à tous,
Dans le cadre d'un stage je dois créer une base données pour un traiteur en ligne, malheureusement mon expérience sur les bases de données est plus que réduite :(
J'ai eu des cours assez simples sur le MCD et le MPD, pas de notions d'héritage ni de trucs compliqués, bref le minimum. Alors maintenant je galère un peu...
Donc pour ce MCD j'ai une table 'PRODUITS' qui contient le stock actuel du dit produit et son libellé (juste le nom, la description du produit se fait ailleurs). Mais ce produit peut être de nature différente (et donc traité de façon différente par la suite). Pour renseigner son état j'ai donc sous-divisé ma table 'PRODUITS' vers des tables de catégories qui sont : 'BOISSONS', 'INGREDIENTS', 'PLATS', 'MATERIELS', 'VINS' (je sais que 'vins' devrait être dans 'boissons', mais il y a trop de références, on ne pourrait pas s'y retrouver ensuite).
http://i68.photobucket.com/albums/i7...D_cat_prod.jpg
Même si ça fait beaucoup de tables j'étais plutôt content de moi, malheureusement quand je passe au MPD ça ne fonctionne pas du tout comme je l'aurais souhaité. Je me retrouve avec une FK par sous-catégorie dans ma table 'PRODUITS' ce qui ne peut pas fonctionner correctement.
http://i68.photobucket.com/albums/i7...D_cat_prod.jpg
Je voulais donc savoir si quelqu'un avait une idée (à part bidouiller les cardinalités pour que enlever les FK de ma table 'produits' :mrgreen: ) ? Quitte a remodeler entièrement mon MCD, je préfère le refaire pour qu'il soit conforme par la suite.
Si vous voulez jeter un coup d'oeil au MCD complet pour avoir une vue d'ensemble, voici un lien pour télécharger le zip :
MCD Complet (Line 1 de la partie "Le MCD complet" )
Je pourrais très bien regrouper toutes mes catégories dans ma table 'PRODUITS' grâce au système des 'id_parent' et 'id_fils' (voir explication ci-dessous) mais si c'était possible j'aimerais bien bien garder un table par catégorie.
Le système des 'id_parent' et des 'id_fils' est simples et pratique mais je ne suis pas sur qu'il soit très conforme à l'esprit BDD. Je m'explique:
'id_parent' est une référence à la catégorie supérieure du produit en question, et 'id_fils' est la référence est la sous-catégorie inférieure. Par exemple pour la table 'INGREDIENTS' cela donne:
http://i68.photobucket.com/albums/i7.../id_parent.jpg
C'est pratique pour le classement, pour les requêtes c'est assez simple d'avoir l'arborescence pour un produit donné. Seulement avec cette technique dans une table sensée ne contenir que des produits je me retrouve avec de catégories et des sous-catégories, bref des choses immatérielles que mon patron serait bien en peine de servir à la table d'un client.
Est-ce que pour vous cette technique est choquante? Si oui j'ai un soucis, vu que je pensais en cas de non-résolution de mon problème de MPD fusionner toutes les tables de catégories avec la table 'PRODUITS' qui du coup ne poserait plus de problème de cardinalités mais qui contiendrait un nom impressionnant de catégories, de sous-catégories, de sous-sous-catégories, etc...
Bref elle deviendrait illisible pour l'oeil humain.
Quand pensez vous? Quelle solution adopteriez-vous?