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

Bibliothèques et frameworks PHP Discussion :

type de relation : belongsTo ou hasMany through Data? [CakePHP]


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2014
    Messages : 96
    Points : 59
    Points
    59
    Par défaut type de relation : belongsTo ou hasMany through Data?
    Bonsoir à tous,
    J'avais commencé à développer une appli sur Cake (et d'ailleurs l'un d'entre vous m'a bien aidé! ;-) )Mais je me rends compte que j'allais dans la mauvaise direction. en effet j'ai voulu créer des recettes à partir de différents ingrédients. Le problème c'est que je me suis focalisée sur les légumes...tout cela pour dire que j'ai réussi à enregistrer mes légumes dans mes recettes, grâce à la relation HABTM, ce qui est déjà très bien, mais le souci c'est que mes recettes contiennent aussi d'autres éléments, comme de la viande, une sauce, etc.
    Du coup j'ai compris que HABTM ne pouvait pas convenir, puisque cela multiplierait les tables de liaisons du type ingrédient_recette...
    Ma question est donc la suivante : quelle est la relation la plus adéquate à ce problème? Est-ce que mes ingrédients peuvent tous $belongsTo recette? ou bien faut-il mettre en place une relation hasMany through Data (que j'ai du mal à comprendre) ?

    Merci si quelqu'un peut m'éclairer!

    Bonne soirée

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    La solution est simple :

    comme je te le dis depuis un certain temps, modélise ta base de données. Les relations entre modèle en découle automatiquement.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2014
    Messages : 96
    Points : 59
    Points
    59
    Par défaut
    Merci.

    J'ai modélisé la table, j'en ai tiré la conclusion suivante : une recette a UN légume, Une viande, Une sauce etc. -> donc relation $hasOne
    En revanche, un légume, une viande ou une sauce peuvent appartenir à plusieurs recettes -> donc...?
    là je sèche parce que la relation belongsTo implique une clé étrangère dans tous les ingrédients, ce qui fait qu'un légume appartiendrait à une seule recette, donc non. Je pense alors à HasMany pour les ingrédients, mais je ne suis pas sûre...parce que ça voudrait dire qu'un légume a plusieurs recettes, alors qu'il appartient à plusieurs recettes...ou alors il faut garder la relation HABTM avec ses inconvénients..? Je suis perdue.

    Une idée?

    Merci

  4. #4
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2014
    Messages : 96
    Points : 59
    Points
    59
    Par défaut
    Bonjour,
    Je pense avoir trouvé la solution :

    • recette hasOne légume


    • légume hasMany recette &


    • légume BelongsTo recette



    Qu'en pensez-vous?

  5. #5
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Il te suffit de transcrire les phrases en français pour savoir ce que tu fais est correct :

    - Une recette possède un seul légume et chaque légume appartient à une seule recette (c'est littéralement ce que signifie une relation hasOne, en base de données correspond à des cardinalités 1,1 <-> 1,1)
    - Et... un modèle ne peut être à la fois hasMany et BelongsTo un autre modèle, ça ne veut rien dire.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  6. #6
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2014
    Messages : 96
    Points : 59
    Points
    59
    Par défaut
    Bonsoir,
    Oui, je m'en suis rendue compte, en fait c'est recette belongsTo légume car un légume n’apparaît pas que dans une seule recette, mais peut exister dans plusieurs recettes, d'où le belongsTo...et pas le hasOne. d'ailleurs j'ai des difficultés à enregistrer les légumes, est-ce que je peux te montrer mes models? parce que ça fait 2-3 jours que je tourne en rond, et que dans mes recettes, le légume_id affiche toujours 0...

    edit : j'ai trois relations : recette hasOne légume
    légume hasMany recette
    et recette belongsTo légume (dont je ne suis pas sûre, je l'ai commenté...)

  7. #7
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Une recette ne possède vraiment qu'au plus un seul légume ? Donc si je veux faire une tarte aux poireaux et aux carottes je peux pas ? Drôle de modélisation...
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  8. #8
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2014
    Messages : 96
    Points : 59
    Points
    59
    Par défaut
    faisons comme s'il en était ainsi, ça m'arrangerait. Peux-tu m'aider?

  9. #9
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Bon dans ce cas, un légume HasMany Recette et une recette belongsTo légume.

    J'espère juste que tu ne le regrettera ni ne le changera pas par la suite par ce que la totalité de l'application est basé sur les relations qui la composent..... Tu changes les relations tu es (quasiment) bon pour redévelopper une application.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  10. #10
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2014
    Messages : 96
    Points : 59
    Points
    59
    Par défaut
    Oui, c'est ce que j'en ai conclu.
    Et effectivement, quand je suis passée d'une relation HABTM à celle-ci, j'ai dû tout refaire, mais là je suis sûre de moi.
    Merci en tous cas

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

Discussions similaires

  1. Quels sont les différents types de relations (liaisons)
    Par pierrot10 dans le forum Débuter
    Réponses: 2
    Dernier message: 07/09/2010, 11h36
  2. type de relation
    Par robert_trudel dans le forum Outils
    Réponses: 0
    Dernier message: 26/11/2009, 03h32
  3. types de relations
    Par dingo200 dans le forum Diagrammes de Classes
    Réponses: 8
    Dernier message: 17/08/2009, 11h06
  4. les types de relations entre de 2 tables
    Par adel.87 dans le forum Développement
    Réponses: 3
    Dernier message: 30/09/2008, 13h16
  5. [Toad Data Modeler] Type de relations
    Par nunurs83 dans le forum Autres
    Réponses: 1
    Dernier message: 04/05/2007, 15h38

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