Partage
  • Partager sur Facebook
  • Partager sur Twitter

Gestion de fichiers

Sujet résolu
    6 novembre 2019 à 16:08:46

    Bonjour,

    Je voudrais mettre en place une gestion de fichier dans ma base. Les fichiers peuvent être liés à trois entités différentes. Je ne sais pas trop comment m'y prendre.

    J'ai pensé à :

      - créer une table Fichier et une table intermédiaires qui relie les trois autres entités

      - créer 3 tables de Fichier (une par entité) et lié chaque table à l'entité concernée

    Comment auriez vous fait ?

    • Partager sur Facebook
    • Partager sur Twitter
    la vérité se cache dans les eviers
      6 novembre 2019 à 16:46:12

      Bonjour,

      Il faudrait préciser les cardinalités.

      Un même fichier peut-il être lié à plusieurs enregistrements de la même entité ?

      Un même fichier peut-il être lié à des entités différentes ?

      Un même fichier peut-il être lié à plusieurs enregistrements d'entités différentes ?

      Chaque enregistrement d'une entité peut-il être lié à plusieurs fichiers ?

      -
      Edité par Benzouye 6 novembre 2019 à 16:46:51

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        7 novembre 2019 à 9:24:21

        Bonjour,

        Merci pour la réponse.

        Benzouye a écrit:

        Un même fichier peut-il être lié à plusieurs enregistrements de la même entité ?

        Oui

        Benzouye a écrit:

        Un même fichier peut-il être lié à des entités différentes ?

        Oui même si le cas peut être assez rare

        Benzouye a écrit:

        Un même fichier peut-il être lié à plusieurs enregistrements d'entités différentes ?

        Oui

        Benzouye a écrit:

        Chaque enregistrement d'une entité peut-il être lié à plusieurs fichiers ?

        Oui

        • Partager sur Facebook
        • Partager sur Twitter
        la vérité se cache dans les eviers
          7 novembre 2019 à 10:08:25

          Si je reprend :

          Tu as des entités 1, des entités 2, des entités 3 et des fichiers. Cela fait 4 entités donc 4 tables.

          Une entité 1 peut être liée à plusieurs fichiers et un fichier peut être lié à plusieurs entité 1. Relation n,n donc 1 table de relation.

          Une entité 2 peut être liée à plusieurs fichiers et un fichier peut être lié à plusieurs entité 2. Relation n,n donc 1 table de relation.

          Une entité 2 peut être liée à plusieurs fichiers et un fichier peut être lié à plusieurs entité 2. Relation n,n donc 1 table de relation.

          Le modèle serait donc :

          • fichier ( id_fichier [pk], ... )
          • entite1 ( id_e1 [pk], ... )
          • fichier_entite1 ( id_fichier [pk][fk], id_e1 [pk][fk] )
          • entite2 ( id_e2 [pk], ... )
          • fichier_entite2 ( id_fichier [pk][fk], id_e2 [pk][fk] )
          • entite3 ( id_e3 [pk], ... )
          • fichier_entite3 ( id_fichier [pk][fk], id_e3 [pk][fk] )

          Cela fait un peu touffu, mais c'est la façon méthodique.

          Si ce modèle ne te convient pas, on peut imaginer une solution plus "crade" ... Mais j'attends ton avis avant d'en parler ...

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

            Merci beaucoup pour la technique.

            Je me demandais juste la forme du MLD pour les tables fichier_entitex, je ne vois pas trop comment créer la clé primaire avec les FK.

            Merci d'avance

            • Partager sur Facebook
            • Partager sur Twitter
            la vérité se cache dans les eviers
              8 novembre 2019 à 9:02:21

              Exemple :

              CREATE TABLE `fichier_entite1` (
              	`id_fichier` int(11) unsigned NOT NULL,
              	`id_e1` int(11) unsigned NOT NULL,
              	PRIMARY KEY (`id_fichier`,`id_e1`),
              	CONSTRAINT `fk_id_fichier` FOREIGN KEY (`id_fichier`) REFERENCES `fichier` (`id_fichier`),
              	CONSTRAINT `fk_id_e1` FOREIGN KEY (`id_e1`) REFERENCES `entite1` (`id_e1`)
              ) ENGINE=InnoDB;

              Tu déclares la clé primaire composée d'un côté et les deux clés étrangères de l'autre.

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

              Gestion de fichiers

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown