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 :

Mémorisation de paramètre utilisateur [MCD]


Sujet :

Schéma

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Points : 70
    Points
    70
    Par défaut Mémorisation de paramètre utilisateur
    J'ai une application C# qui tourne actuellement sur une base SQL Server.
    Je voudrais mettre en place la personnalisation des grilles de l'application (déplacer les colonnes, choisir la taille, cacher des colonnes etc...) par utilisateur.

    Ma table UTILISATEURS étant déjà créé, je pense rajouter une table GRILLEPERSO et COLONNEPERSO avec les liens suivant :


    UTILISATEURS (0,n) ----- personnalise ------- (0,1)GRILLEPERSO
    GRILLEPERSO (1,n) ------- contient ---------- (1,1)COLONNEPERSO

    J'aurais donc une clé étrangère idUtilisateur dans ma table GRILLEPERSO et une autre idGrillePerso dans la table COLONNEPERSO.

    Pensez vous que cela semble être correct ?

    Merci

  2. #2
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Exile69,

    A priori, dans l'esprit, oui, mais :
    • 1 même grille ne peut-elle pas servir à plusieurs utilisateurs ?
    • 1 même colonne ne peut-elle pas être contenue dans plusieurs grilles ?
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par Richard_35 Voir le message
    Bonjour Exile69,

    A priori, dans l'esprit, oui, mais :
    • 1 même grille ne peut-elle pas servir à plusieurs utilisateurs ?
    • 1 même colonne ne peut-elle pas être contenue dans plusieurs grilles ?
    Une grille peut servir à plusieurs utilisateurs, mais dans mon cas, chaque utilisateurs personnalise sa grille comme il le souhaite, donc je pense que c'est pour sa que j'ai mis ma clé étrangère dans la table GRILLE.

    Idem pour les colonnes, par exemple :
    J'ai une colonne qui s'appel nomClient, et j'ai 2 grilles dont l'une est listeFacture et l'autre listeCommande.

    Je suis d'accord pour dire que ma colonne nomClient appartient à mes grilles listeFacture et listeCommande, mais comme l'utilisateur peut personnaliser les colonnes, si par exemple il veut que sa colonne nomClient s'affiche en rouge dans listeFacture et en vert dans listeCommande je suis obligé de mettre la clé étrangère de idGrille dans la TABLE COLONNE.

    Non ?

  4. #4
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    C'est vrai.
    Dans ton optique, donc je reprends ton schéma en le complétant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Utilisateur -0,n---[posséder]---0,1- GrillePerso -1,n---[contenir]---1,1- ColonnePerso -1,1---[personnaliser]---0,n--- Colonne
    donnant :
    Utilisateur(IdUtilisateur, Nom, ...) ;
    GrillePerso(IdGrilleperso, Libelle, ...) ;
    GrillePerso_Utilisateur(#IdGrilleperso, #IdUtilisateur, ...) ==> car 0,1- GrillePerso et une clé étrangère à NULL est déconseillée ;
    ColonnePerso(IdColonnePerso, #IdGrilleperso, #IdColonne, [personnalisation] ...) ==> car 1,1- ColonnePerso ;
    Colonne(IdColonne, Libelle, ...) ==> table des colonnes (non personnalisées).

    NB :
    Il me semble qu'il est d'usage :
    • de laisser au singulier les entités : nous nous doutons bien qu'elles comporteront plusieurs éléments... ;
    • d'utiliser des verbes à l'infinitif pour les associations.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Points : 70
    Points
    70
    Par défaut
    Je suis d'accord avec toi, il ne me reste plus qu'à le générer tout sa dans la base et à le gérer.

    Merci de ton aide !

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Points : 70
    Points
    70
    Par défaut
    Une dernière question :

    A quoi sert cette ligne :

    GrillePerso_Utilisateur(#IdGrilleperso, #IdUtilisateur, ...) ==> car 0,1- GrillePerso et une clé étrangère à NULL est déconseillée ;

    Merci

  7. #7
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Citation Envoyé par Exile69
    A quoi sert cette ligne :
    Citation Envoyé par Richard_35
    GrillePerso_Utilisateur(#IdGrilleperso, #IdUtilisateur, ...) ==> car 0,1- GrillePerso et une clé étrangère à NULL est déconseillée ;
    pour éviter
    Citation Envoyé par Exile69
    .../... je pense que c'est pour sa que j'ai mis ma clé étrangère dans la table GRILLE.
    comme expliqué, une clé étrangère à NULL est déconseillée. Dans la relation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Utilisateur -0,n---[posséder]---0,1- GrillePerso
    tu as indiqué la cardinalité 0 (en rouge).

    En résumé, tu comptais créer une table :
    GrillePerso(IdGrilleperso, Libelle, #IdUtilisateur, ...)
    mais #IdUtilisateur pourrait être = NULL, ce qui est fortement déconseillé pour une clé étrangère.
    En conséquence :
    GrillePerso(IdGrilleperso, Libelle, ...) ;
    GrillePerso_Utilisateur(#IdGrilleperso, #IdUtilisateur, ...).
    élimine cette possibilité.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  8. #8
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Points : 70
    Points
    70
    Par défaut
    Donc sa me donnerai sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Utilisateur -0,n---[posséder]0,n---GrillePerso_Utilisateur 0,n---[possèder]---0,1- GrillePerso -1,n---[contenir]---1,1- ColonnePerso -1,1---[personnaliser]---0,n--- Colonne

  9. #9
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Pas tout à fait.

    Dans tes relations :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Utilisateur -0,n---[posséder]---0,1- GrillePerso -1,n---[contenir]---1,1- ColonnePerso -1,1---[personnaliser]---0,n--- Colonne
    l'association [posséder] devient une entité/association (une table, en final).

    Maintenant, si tu veux absolument "modéliser à partir des tables finales", ce serait, plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Utilisateur -0,n---[associer]---1,1- GrillePerso_Utilisateur -1,1---[associer]---0,1- GrillePerso
                                                                                               |
                                                                                              1,n
                                                                                               |
                                                                                           [contenir]
                                                                                               |
                                                                                              1,1
                                                                                               |
                                                                                          ColonnePerso
                                                                                               |
                                                                                              1,1
                                                                                               |
                                                                                         [personnaliser]
                                                                                               |
                                                                                              0,n
                                                                                               |
                                                                                            Colonne
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  10. #10
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Points : 70
    Points
    70
    Par défaut
    Ok je trouve sa plus clair maintenant.

    Merci de ton aide

  11. #11
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Points : 70
    Points
    70
    Par défaut
    Bonjour,

    Je relance juste le sujet car j'ai rajouté dans mon MCD 2 tables, une table Grille et GrilleColonne. Je vous joins le MCD.

    Explication pour la table Grille et GrilleColonne :

    Grille 1,n -----CONTENIR-------1,n Colonne donc création d'une table associative GrilleColonne(idGrille, idColonne)

    Grille 0,n -----CONTENIR------ 1,1 GrillePerso


    Mon MCD contient donc une référence circulaire, pensez vous qu'avec le rajout de ces deux tables, le MCD est correct ?

    Merci
    Images attachées Images attachées  

  12. #12
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Exile69,

    Tu reviens un peu en arrière, il me semble.

    Si j'ai bien compris, tu souhaites gérer des "grilles modèles" servant de base aux "grilles personnalisées" tout en conservant, dans les "grilles personnalisées", la grille qui a servi de modèle.

    C'est bien cela ?
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  13. #13
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Points : 70
    Points
    70
    Par défaut
    Oui c'est tout à fait cela.

    Le MCD ne va pas par rapport à ce que je souhaite ?

  14. #14
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Citation Envoyé par Exile69
    Le MCD ne va pas par rapport à ce que je souhaite ?
    ==> ça dépend ...

    Dans les "grilles personnalisées" (donc issues de "grilles modèles"), souhaites-tu qu'il soit possible de sélectionner une colonne qui ne figure pas dans la "grille modèle" qui a servi de modèle ?
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  15. #15
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Points : 70
    Points
    70
    Par défaut
    Dans les "grilles personnalisées" (donc issues de "grilles modèles"), souhaites-tu qu'il soit possible de sélectionner une colonne qui ne figure pas dans la "grille modèle" qui a servi de modèle ?
    Non, cela ne sera pas possible dans l'application

  16. #16
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Alors, c'est plus simple.

    Suggestion :
    Utilisateur(IdUtilisateur, Nom, ...) ;
    Colonne(IdColonne, Libelle, ...) ;

    Grille(IdGrille, Libelle, ...) ;
    GrilleColonne(#IdGrille, #IdColonne, ...) ;
    ==> grille "modèle".

    Utilisateur_GrillePerso(#IdUtilisateur, #IdGrille, LibellePerso, ...) ;
    Utilisateur_GrillePerso_ColonnePerso(#IdUtilisateur, #IdGrille, #IdColonne, [personnalisation] ...) ;
    ==> {#IdUtilisateur, #IdGrille} référençant Utilisateur_GrillePerso ;
    ==> {#IdGrille, #IdColonne} référençant GrilleColonne ("grille modèle", sans passer par Colonne).
    Qu'en penses-tu ?
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  17. #17
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Points : 70
    Points
    70
    Par défaut
    J'ai refais le mcd (cf piece jointe), je pense que ça à l'air cohérent.

    Merci de m'aider en tout cas
    Images attachées Images attachées  

  18. #18
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Pas tout à fait , à cause de mes remarques en italique :
    Utilisateur_GrillePerso_ColonnePerso(#IdUtilisateur, #IdGrille, #IdColonne, [personnalisation] ...) ;
    ==> {#IdUtilisateur, #IdGrille} référençant Utilisateur_GrillePerso ;
    ==> la flèche doit aller de Utilisateur_GrillePerso_ColonnePerso vers Utilisateur_GrillePerso ;
    ==> supprimer la flèche de Utilisateur_GrillePerso_ColonnePerso vers Utilisateur ;
    ==> supprimer la flèche de Utilisateur_GrillePerso_ColonnePerso vers Grille.


    ==> {#IdGrille, #IdColonne} référençant GrilleColonne ("grille modèle", sans passer par Colonne).
    ==> la flèche doit aller de Utilisateur_GrillePerso_ColonnePerso vers GrilleColonne ;
    ==> supprimer la flèche de Utilisateur_GrillePerso_ColonnePerso vers Colonne.

    Ton logiciel de modélisation ne traite pas les cardinalités ?
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  19. #19
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 256
    Points : 70
    Points
    70
    Par défaut
    J'ai refais mon MCD, avec tes indications, pour la modélisation j'utilise actuellement Visio 2010, je vais voir pour essayer PowerAMC.
    Images attachées Images attachées  

  20. #20
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Exile69,

    Citation Envoyé par Exile69
    J'ai refais mon MCD, avec tes indications .../...
    ==>
    ==> {#IdGrille, #IdColonne} référençant GrilleColonne ("grille modèle", sans passer par Colonne).
    ==> la flèche doit aller de Utilisateur_GrillePerso_ColonnePerso vers GrilleColonne ;
    ==> supprimer la flèche de Utilisateur_GrillePerso_ColonnePerso vers Colonne.
    ==>
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 24
    Dernier message: 30/08/2014, 22h21
  2. [VS 2005] Paramètre Utilisateur et MenuStrip
    Par D4rkTiger dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/07/2007, 20h43
  3. Sécuriser les paramètres utilisateurs (settings)
    Par moififi dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/06/2007, 13h49
  4. Réponses: 3
    Dernier message: 25/04/2006, 10h30
  5. [SQL]Requête de MAJ avec paramètres utilisateurs
    Par Nenette_cherie dans le forum Access
    Réponses: 4
    Dernier message: 10/01/2006, 17h54

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