Partage
  • Partager sur Facebook
  • Partager sur Twitter

PhpMyAdmin

    16 avril 2022 à 0:18:53

    Bonjour,

    J'ai un petit problème pour la conception de ma BDD, en effet le but est de crée une table représentant la perception d'un ordinateur par un client 

    J'ai donc 3 tables

    perception

    user

    uc

    uc ou j'aurai le NS en cle primaire

    user ou j'aurai le couple {nom, prénom}

    mais pour la table perception, je ne sais pas quoi avoir comme clé primaire pour avoir un seul utilisateur avec un seul uc

    idée :

    -1) Mettre un id en clé primaire ... sauf que je pourrais avoir plusieurs lignes avec nom,prenom et uc identique ce qui est pas bon

    -2) Mettre le couple nom,prénom comme ça j'ai mon utilisateur unique

    -3) Mettre le NS

    solution 2 et 3 semble bon alors pourquoi pas les combiner sauf que quand je crée 2 utilisateurs différents avec le même NS ça passe or c'est pas bon .

    pouvez-vous m'aider à trouver la solution pour supprimer les doublons ? en vous remerciant =)

    • Partager sur Facebook
    • Partager sur Twitter
      16 avril 2022 à 11:53:39

      Bonjour,

      Je ne comprends pas ce que tu appelles perception ... C'est l'affectation ?

      Une UC est affectée à un seul utilisateur, et un utilisateur n'a qu'une seule UC ?

      Si c'est cela, pour être le plus propre possible, je créerai 3 tables :

      • uc ( id_uc [pk], num_serie, etc. ) avec unique( num_serie)
      • utilisateur ( id_utilisateur [pk], nom, prenom ) avec unique( nom, prenom )
      • affectation ( id_utilisateur [fk], id_ud [fk] ) avec unique( id_utilisateur ) et unique( num_serie )

      Mais, comme tu as une relation 1,1, la solution la plus rigoureuse serait en un seule table :

      • utilisateur( id_utilisateur [pk], nom, prenom, num_serie, etc. ) avec unique( nom, prenom ) et unique( num_serie )
      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        16 avril 2022 à 15:10:03

        Benzouye a écrit:

        Bonjour,

        Je ne comprends pas ce que tu appelles perception ... C'est l'affectation ?

        Une UC est affectée à un seul utilisateur, et un utilisateur n'a qu'une seule UC ?

        Si c'est cela, pour être le plus propre possible, je créerai 3 tables :

        • uc ( id_uc [pk], num_serie, etc. ) avec unique( num_serie)
        • utilisateur ( id_utilisateur [pk], nom, prenom ) avec unique( nom, prenom )
        • affectation ( id_utilisateur [fk], id_ud [fk] ) avec unique( id_utilisateur ) et unique( num_serie )

        Mais, comme tu as une relation 1,1, la solution la plus rigoureuse serait en un seule table :

        • utilisateur( id_utilisateur [pk], nom, prenom, num_serie, etc. ) avec unique( nom, prenom ) et unique( num_serie )

        Concernant t'as question :

        perception est une table permettant de mettre en relation toutes mes autres tables car j'ai juste généraliser mon problèmes en réalité j'ai d'autres tables. Donc pour ça que je sépare mes tables et que je travail sur la table perception

        Ensuite :

        pourquoi crée en clé primaire un id encore pour l'utilisateur je comprend mais pour UC? puisque le numéro de série sera toujours différents pas besoin ? si ?

        merci pour ton aide =)

        • Partager sur Facebook
        • Partager sur Twitter
          19 avril 2022 à 10:03:17

          JohanTurquin10 a écrit:

          pourquoi crée en clé primaire un id encore pour l'utilisateur je comprend mais pour UC?

          Il est juste plus performant d'avoir une clé primaire sur un INTEGER plutôt que sur un VARCHAR : en terme de stockage (espace disque) et en terme de performance sur les jointures ( le test nombre1 = nombre2 est plus rapide que chaîne1 = chaîne2 ).

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

          PhpMyAdmin

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          • Editeur
          • Markdown