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 :

Modification 1_n -> n_n


Sujet :

Schéma

  1. #1
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 117
    Points : 97
    Points
    97
    Par défaut Modification 1_n -> n_n
    Bonjour,

    j'ai à modifier une application.

    L'existant comporte les tables suivantes :
    Article(Code_Article; Code_Format; ...)
    Format(Code_Format; Code_Conf; ...)
    Conf_Imprimante(Code_Conf; ...)

    Les relations entre chaque tables étaient du type 1_n (en fait il n'y avait pas de relation mais c'est comme ca que c'était considéré)

    Le client veut désormais :
    1 : Rendre possible la définition d'une configuration imprimante par format, afin d'éviter que la modification d'une conf imprimante n'affecte plusieurs articles.
    2 : Utiliser plusieurs types d'imprimantes, ce qui a pour conséquence d'avoir x tables Conf_Imprimante, source de mon soucis ....

    Voila comment de manière la plus simple je pense répondre au besoin, mais ca implique que je gère de manière logicielle la non existence de Code_Format identiques dans les tables Conf_Imprimante_x (qui comportent des champs autres que les ID différents puisque dédiés à un type d'équipement différent)

    Article(Code_Article; Code_Format; ...)
    Format(Code_Format; ...)
    Conf_Imprimante_X(Code_Conf; Code_Format; ...)
    Conf_Imprimante_Y(Code_Conf; Code_Format; ...)
    Conf_Imprimante_Z(Code_Conf; Code_Format; ...)
    ...


    J'ai essayé une autre solution avec une nouvelle table intermédiaire du type Conf_Impr_Format(Code_Imprimante; Code_Conf; Code_Format) mais je n'en suis pas persuadé que ca ne me pas complique les requêtes pour rien.


    Merci de m'éclairer

    Edit : En fait se pose le problème de savoir sur quelle table aller récupérer les informations de configuration d'imprimante puisqu'on va en avoir plusieurs .....

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Je déduis de la structure actuelle le schéma suivant :
    Conf_Imprimante -0,n----()----1,1- Format -0,n----()----1,1- Article

    En français :
    - Un article n'a qu'un format et un format peut correspondre à plusieurs articles.
    - Un Format n'a qu'une configuration d'imprimante et une configuration d'imprimante peut correspondre à plusieurs formats.

    C'est juste ?

    Le client veut désormais :
    1 : Rendre possible la définition d'une configuration imprimante par format,
    C'est déjà le cas d'après le schéma !
    afin d'éviter que la modification d'une conf imprimante n'affecte plusieurs articles.
    Par contre effectivement si je change une configuration d'imprimante, ça influe sur touts les formats associés et donc à tous les articles associés à ce format.
    En gros, soit j'ai rien compris, soit le problème est mal posé, soit la solution proposée n'est pas bonne puisque c'est déjà le schéma et que ça ne correspond pas au besoin !

    2 : Utiliser plusieurs types d'imprimantes,
    Est-ce qu'un article est une imprimante ?
    Ou y a t-il une partie de schéma supplémentaire que nous ignorons ? Par exemple :
    Imprimante -0,n----Avoir----1,1- Conf_Imprimante

    Auquel cas il pourrait aussi y avoir :
    Imprimante -1,1----Typer----0,n- TypeImprimante

    ce qui a pour conséquence d'avoir x tables Conf_Imprimante,
    Ca c'est sûrement mauvais !

    Un exemple de données réelles aiderait à la compréhension du problème.

  3. #3
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 117
    Points : 97
    Points
    97
    Par défaut
    Merci pour la réponse, mais désolé pour les données je n'en ai pas ...
    Citation Envoyé par CinePhil Voir le message
    Je déduis de la structure actuelle le schéma suivant :
    Conf_Imprimante -0,n----()----1,1- Format -0,n----()----1,1- Article

    En français :
    - Un article n'a qu'un format et un format peut correspondre à plusieurs articles.
    - Un Format n'a qu'une configuration d'imprimante et une configuration d'imprimante peut correspondre à plusieurs formats.

    C'est juste ? ==> OUI


    C'est déjà le cas d'après le schéma ! ==> OUI mais en fait c'est l'application qui rendait impossible l'utilisation de plusieurs configurations imprimantes .... désolé pour le malentendu, en fait il faut rendre OBLIGATOIRE la saisie d'une nouvelle config imprimante pour chaque nouveau format

    .....

    Est-ce qu'un article est une imprimante ? ==> NON et il n'y a pas d'autres tables à ce niveau (ce qui n'est pas bien du reste mais bon ... )
    Par contre, une autre petite partie dont je n'ai pas parlé qui n'est pas directement liée, est la table "ligne". Deux imprimantes étant affectées à chaque ligne (à gauche et à droite).
    Je compte bien rajouter justement une table type_imprimante(Code_Type; Description; NomTableConf) et une imprimante(Code_Imprimante; Code_Type; Adr_IP; Port; ....)
    La table ligne sera alors ligne(Code_Ligne; Code_Impr_G; Code_Impr_D; Cadence; ...

    .....
    Mais ca ne change pas le fond du problème, je pense que ca va comme ca, mais je suis obligé de renseigner une colonne avec le nom de la table de configuration de chaque type d'imprimante pour pouvoir y récupérer les infos, puisque plusieurs types d'imprimantes peuvent être utilisées, et que chaque type aura des propriétés complétement différentes.


    Ou alors (je pense à un fameux design patern ...) faire une table de propriété ou seraient confondues celles des divers type d'imprimantes ?? J'ai peur que ce soit plus lourd à l'utilisation même si la méthode des différentes tables n'est pas élégante ...

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par ZuZu Voir le message
    Ou alors faire une table de propriété ou seraient confondues celles des divers type d'imprimantes ??
    Sans être sûr de comprendre complètement de quoi il s'agit, je pense que ce serait mieux en effet parce que plusieurs tables conf_imprimante, beurk !
    Ou alors il s'agirait de mettre en oeuvre une notion d'héritage.

    J'ai peur que ce soit plus lourd à l'utilisation même si la méthode des différentes tables n'est pas élégante ...
    Peut-être mais probablement plus rigoureux et plus facilement adaptable par la suite.
    Un nouveau type = de nouvelles entrées dans une table existante alors qu'avec la méthode multi-tables il faudrait changer le modèle de données. La BDD devient dépendante de l'application alors que la BDD devrait être capable de garder la solidité de ses fondations.

  5. #5
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 117
    Points : 97
    Points
    97
    Par défaut
    Je sais bien que ca serait mieux, mais je n'ai jamais procédé de la sorte, et mon temps est limité sur ce sujet, donc à moins que quelqu'un ne me donne les grandes lignes, je ne vais pas m'y lancer tout de suite (par contre dans une prochaine étape dans quelques semaines ce sera possible, donc si j'avais pu faciliter le travail dès aujourd'hui ca m'aurait arrangé pour la suite ...)

    Pour info si ca peut aider sinon, voila à quoi j'arrive ....
    Images attachées Images attachées  

Discussions similaires

  1. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 17h16
  2. [VB6] modification de menu
    Par rikko23 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/11/2002, 21h30
  3. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37
  4. Modification de l'évènement OnClick
    Par MrJéjé dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2002, 12h52
  5. Réponses: 11
    Dernier message: 23/07/2002, 14h33

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