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

  1. #1
    Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    juin 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : juin 2018
    Messages : 2
    Points : 4
    Points
    4

    Par défaut Structuration d'une relation n:n

    Bonjour et bravo pour ce framework simple et puissant.

    J'ai une problématique concernant la gestion d'une relation n:n.

    Pour illuster le problème, prenons par exemple la relation Article -- Stock -- Magasin.

    Nom : stock.png
Affichages : 38
Taille : 15,4 Ko

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    -- -----------------------------------------------------
    -- Table `ilmagbl1`.`Article`
    -- -----------------------------------------------------
    DROP TABLE IF EXISTS `ilmagbl1`.`Article` ;
    
    CREATE TABLE IF NOT EXISTS `ilmagbl1`.`Article` (
      `idArticle` INT NOT NULL AUTO_INCREMENT,
      `Nom` VARCHAR(45) NOT NULL,
      PRIMARY KEY (`idArticle`))
    ENGINE = InnoDB;
    
    
    -- -----------------------------------------------------
    -- Table `ilmagbl1`.`Magasin`
    -- -----------------------------------------------------
    DROP TABLE IF EXISTS `ilmagbl1`.`Magasin` ;
    
    CREATE TABLE IF NOT EXISTS `ilmagbl1`.`Magasin` (
      `idMagasin` INT NOT NULL AUTO_INCREMENT,
      `Nom` VARCHAR(45) NOT NULL,
      PRIMARY KEY (`idMagasin`))
    ENGINE = InnoDB;
    
    
    -- -----------------------------------------------------
    -- Table `ilmagbl1`.`Stock`
    -- -----------------------------------------------------
    DROP TABLE IF EXISTS `ilmagbl1`.`Stock` ;
    
    CREATE TABLE IF NOT EXISTS `ilmagbl1`.`Stock` (
      `idStock` INT NOT NULL AUTO_INCREMENT,
      `idStockArticle` INT NOT NULL,
      `idStockMagasin` INT NOT NULL,
      `StockValeur` INT NOT NULL,
      PRIMARY KEY (`idStock`),
      INDEX `fk_article_idx` (`idStockArticle` ASC),
      INDEX `fk_magasin_idx` (`idStockMagasin` ASC),
      CONSTRAINT `fk_article`
        FOREIGN KEY (`idStockArticle`)
        REFERENCES `ilmagbl1`.`Article` (`idArticle`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION,
      CONSTRAINT `fk_magasin`
        FOREIGN KEY (`idStockMagasin`)
        REFERENCES `ilmagbl1`.`Magasin` (`idMagasin`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    ENGINE = InnoDB;
    Je cherche à savoir comment structurer l'application.

    1. Faut-il choisir un module CRUD pour Magasin et un pour Article, puis un module CRUD intégrable pour stock?
    2. Faut-il créer un module GestionStock qui prendra en compte l'ensemble de la gestion des 3 tables?

    Cette problématique de relation n:n mériterait je pense un petit tuto ou exemple pour bien comprendre la structure à appliquer.

    Merci.

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 132
    Points : 19 207
    Points
    19 207
    Billets dans le blog
    17

    Par défaut

    Pour information vous n'etes pas obligé de creer un CRUD pour chaque table, l'idée de la génération de module, dont le CRUD est pour faciliter le demarrage d'une application
    C'est la meme chose pour les classes model, elles ne sont pas obligés de se cantonner à une table

    Dans votre cas, vous pouvez partir sur une généation d'un module CRUD puis
    - soit creer ensuite un module CRUD integrable et , justement l'integré dans la page d'affichage
    - soit modifier le module CRUD pour ajouter

    J'ai un tutoriel qui correspond un peu à cette problematique
    http://mkframework.com/bigtutoriel_s...etwork_VI.html

    Mais je vais voir pour faire un tuto / slides
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 132
    Points : 19 207
    Points
    19 207
    Billets dans le blog
    17

    Par défaut

    Je viens d'écrire un petit tutoriel avec 2 tables, 2 modules CRUD un normal, l'autre intégrable

    ça devrait vous aider à comprendre
    http://mkframework.com/tutoriaux.htm...ndcrudembedded
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  4. #4
    Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    juin 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : juin 2018
    Messages : 2
    Points : 4
    Points
    4

    Par défaut

    Merci beaucoup pour votre réactivité et la clareté du nouveau tuto qui m'est très utile.
    Ce que vous faites est pro, créatif et pragmatique, bravo

  5. #5
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 132
    Points : 19 207
    Points
    19 207
    Billets dans le blog
    17

    Par défaut

    Merci beaucoup pour votre message, j'essaie de donner envie d'utiliser ce framework peu connu

    Bon courage pour la suite
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

Discussions similaires

  1. recuperation de la structure d'une base
    Par pascalT dans le forum 4D
    Réponses: 7
    Dernier message: 07/06/2006, 16h32
  2. [tables systèmes] extraction de la structure d'une base
    Par laffreuxthomas dans le forum Autres SGBD
    Réponses: 6
    Dernier message: 23/03/2006, 14h24
  3. [Mapping] Structure d'une relation
    Par k4eve dans le forum Hibernate
    Réponses: 6
    Dernier message: 27/04/2004, 12h19
  4. Lister la structure d'une table
    Par TMuet dans le forum SQL
    Réponses: 2
    Dernier message: 29/12/2003, 18h56
  5. exporter la structure d'une base Sybase en ascii
    Par Jean-Cyp dans le forum Sybase
    Réponses: 5
    Dernier message: 05/11/2002, 17h15

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