IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Avis sur modele pour inventaire


Sujet :

Schéma

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 103
    Points : 87
    Points
    87
    Par défaut Avis sur modele pour inventaire
    Bonjour,

    Quelqu'un pourrait il me donner son avis sur mon modèle qui me semble louche au niveau des relations entre les tables materiel - materiel_type - valeur_caracterisitique_materiel - ligne_caracteristique_materiel et caracterisitique_materiel_type.

    J'ai du mal à repésenter la relation entre ma table de matériels et des valeurs affectées aux caractéristiques du matériel en fonction du type de matériel.

    C'est pour une web application d'inventaire de matériel d'une ste.

    Merci
    Images attachées Images attachées  

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    D'abord, je trouve que tu gagnerais en clarté en simplifiant le nom de tes colonnes. Au lieu de reprendre le nom de la table, utilise un préfixe mnémotechnique. Par exemple :
    - materiel => mat_
    - materiel_type => mty_

    Venons-en au schéma...

    1) Puisque tout matériel a une référence comptable et que toute référence comptable se rapporte à un matériel, pourquoi avoir fait deux tables ?

    2) Dans la table affectation, je vois une clé étrangère IdEvenement alors que la table n'est pas associée à une table d'événements mais de motifs. Tu as changé le nom de la table en cours de route ?

    J'ai du mal à repésenter la relation entre ma table de matériels et des valeurs affectées aux caractéristiques du matériel en fonction du type de matériel.
    Effectivement, c'est un peu confus !

    Ce que je comprends, c'est qu'un type de matériel peut avoir plusieurs caractéristiques. D'après ta table associative ligne_champ_materiel, il semble qu'une caractéristique puisse caractériser plusieurs types de matériels.

    Ensuite, je pense que ce que tu veux formaliser, c'est qu'un matériel ne peut avoir d'autres caractéristiques que celles de son type et que tu veux y associer une valeur pour chaque couple {matériel, caractéristique}.
    Il faut alors associer la table matériel à la table ligne_champ_matériel (ce n'est pas un nom très clair au passage !) :
    materiel ||----< valeur-caracteristique >----|| ligne_champ_materiel

    Quelques précisions conceptuelles tout de même...
    La table associative ligne_champ_materiel reflète le morceau de MCD suivant :
    materiel_type -0,n----caracteriser----0,n- caracteristique_materiel_type

    Associer materiel à ligne_champ_materiel revient donc à associer une table à une association, ce qui ne se fait en principe pas. Il faut donc, dans le MCD, transformer l'association en entité :
    materiel_type -0,n----avoir----(1,1)- ligne_champ_materiel -(1,1)----caracteriser----0,n- caracteristique_materiel_type

    Dès lors, on peut associer l'entité materiel à l'entité ligne_champ_materiel :
    materiel -0,n----valoriser----0,n- ligne_champ_materiel

    Ce qui nous donne bien le schéma entité/relation précédent :
    materiel ||----< valeur_caracteristique >----|| ligne_champ_materiel

    La table valeur_caracteristique aura la structure suivante :
    valeur_caracteristique (idMateriel, idMaterielType, idCaracteristique, valeur)

    On y retrouve idMaterielType qui est déjà une clé étrangère de la table materiel et rien n'empêche dans ce modèle d'associer un matériel avec un couple {idMaterielType, idCaracteristique} dans lequel idMaterielType n'est pas celui du matériel.

    Je ne pense pas qu'on puisse résoudre ce problème par le modèle Entité/Association. Comme MySQL ignore les contraintes SQL CHECK, il faudra créer un trigger sur la table valeur_caracteristique pour s'assurer que l'idMaterielType est bien celui du matériel.

    Bon courage !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 103
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    1) Puisque tout matériel a une référence comptable et que toute référence comptable se rapporte à un matériel, pourquoi avoir fait deux tables ?

    2) Dans la table affectation, je vois une clé étrangère IdEvenement alors que la table n'est pas associée à une table d'événements mais de motifs. Tu as changé le nom de la table en cours de route ?
    1) Effectivement..
    2) Oui le nom de la table a changé par la suite

    Merci pour toutes ces précisions je vais analyser tout ça...

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Tu peux aussi regarder cette discussion très proche de ton problème.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Votre avis sur Eclipse pour C et C++
    Par millie dans le forum Eclipse C & C++
    Réponses: 12
    Dernier message: 24/08/2010, 22h51
  2. Quadtrees pour l'édition de diagrammes
    Par PRomu@ld dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 21/05/2009, 17h07
  3. Avis sur livres pour certification DBA
    Par St-Drome dans le forum Livres
    Réponses: 0
    Dernier message: 12/06/2008, 16h17
  4. Réponses: 7
    Dernier message: 16/04/2008, 11h06
  5. Réponses: 2
    Dernier message: 11/04/2007, 21h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo