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

MySQL Discussion :

Question par rapport à la conception d'une table de ma base de données [MySQL-5.6]


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut Question par rapport à la conception d'une table de ma base de données
    Bonjour,

    J'ai un bd qui contient des informations de contacts de prestataires (médecin, kinés...).

    Plusieurs utilisateurs vont utiliser cette BD.

    J'aimerais que chaque utilisateurs puisse mettre en favoris leurs prestataires auxquels ils devront accéder souvent.

    J'ai donc une table professionnels (les prestataires), une table users (les utilisateurs de l'intranet).

    Un professionnel (partenaire) peut être plusieurs fois favoris et un favoris peut se retrouver chez plusieurs utilisateurs.

    Je ne sais pas comment m'y prendre ?

    Je devrais donc avoir une table qui reprend l'ensemble des favoris par utilisateurs.

    Je ne vois pas comment m'y prendre pour les relations, avez-vous une idée svp ?

    Merci d'avance.

    bee

    Nom : Capture d'écran 2017-09-16 10.46.32.png
Affichages : 1548
Taille : 278,9 Ko

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 135
    Par défaut
    Il suffit d'une simple table d'association qui reprendra uniquement l'identifiant de l’utilisateur et celui du prestataire.
    Deux clés étrangères, l'une de l'identifiant de l'utilisateur vers la table des utilisateurs, l'autre de l'identifiant du prestataire vers la table des prestataires.
    Une contrainte d'unicité sur le couple (identifiant de l’utilisateur, identifiant du prestataire).
    Rien de plus

    PS : Je n'avais pas vu ton modèle de données. Une bonne pratique conseille d'utiliser un nom pour identifier une donnée unique. Donner le nom id à tous les identifiants de toutes les tables n'est pas une bonne idée
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Bonjour,

    Merci pour ta réponse.

    En effet, c'était tout simple finalement...

    En fait, c'est parce que j'utilise MySQL Workbench et je ne savais pas comment faire pour ajouter des clés étrangères sans utiliser les relations (1,n 1,n).

    Voici une impression d'écran qui pourra peut-être aider d'autres personnes.

    Encore merci et bon W.E.
    bee

    Nom : Capture d'écran 2017-09-16 11.00.02.png
Affichages : 818
Taille : 276,1 Ko
    Images attachées Images attachées  

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 602
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Puisque la question concerne la modélisation, il y a aussi d'autres points à corriger :

    - user comme professionnel sont des personnes, il faudrait donc mutualiser ce qui est commun (nom, prénom, date de naissance...) dans une table personne, puis créer deux sous-types "professionnel" d'une part et "user" d'autre part (l'usage est d'utiliser des singuliers pour les noms d'entité-type), pour ce qui est spécifique.
    Vous créez ensuite une relation entre les deux sous-types.
    En faisant ainsi, si un user est également un professionnel, vous évitez les redondances avec les risques d'erreur inhérents.

    - la codification des adresses est normée. cf. norme de la poste pour les adresses professionnels et particuliers.

    - adresse et téléphone n'ont rien à faire dans la table "professionnel"; il faut modéliser ainsi :
    [PERSONNE] 0,n --- (resider) --- (1,1) ou 1,1 ou 1,n [ADRESSE]
    [PERSONNE] 0,n --- (telephoner) --- (1,1) ou 1,1 ou 1,n [TELEPHONE]

    - sans doute certains professionnels sont ils des personnes morales, auquel cas nom et prénom par exemple n'ont pas de sens. Dans ce cas il faut encore créer deux sous-types sous l'entité-type "professionnel" pour avoir selon le cas nom, prénom, date de naissance etc... ou bien SIREN, NIC, raison sociale etc...

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    J'ajoute ma petite remarque concernant l'association entre categorie (au singulier !) et professionnel (au singulier !) : Selon votre schéma, un professionnel appartient à une seule catégorie (ok) et une catégorie n'est associée qu'à un seul professionnel (ko ).
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/03/2010, 13h31
  2. export d'une table de la base de données
    Par luna007 dans le forum Administration
    Réponses: 3
    Dernier message: 02/07/2009, 21h54
  3. [Joomla!] Transférer une tables de la base des données d'un composant à un autre
    Par Mouna1983 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 15/10/2008, 18h52
  4. Exporter une table de la base de données
    Par Djludo dans le forum Langage
    Réponses: 15
    Dernier message: 25/08/2008, 16h37
  5. [PEAR] Initialisation d'une variable par rapport à la structure d'une table
    Par Katachana dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 22/01/2008, 11h12

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