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

Schéma Discussion :

Association réflexive ou pas ? [MCD]


Sujet :

Schéma

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 179
    Points : 77
    Points
    77
    Par défaut Association réflexive ou pas ?
    Bonjour,

    je suis confronté à un petit soucis de modélisation pour les besoins perso d'un jeu que je développe.

    Dans mon jeu, nous pouvons construire des bâtiments et chaque bâtiment peut (ce n'est pas toujours le cas) nécessiter la construction d'autres bâtiments au préalable d'un certain niveau pour pouvoir être construit.

    Par exemple (exemple bidon), la construction d'un centre de recherche nécessite la construction préalable d'une mine de métal niveau 3 et d'une mine d'or niveau 2.

    Pour le moment j'ai une table "batiments" listant les différents bâtiments possible et leur cout en ressources pour le niveau 1.

    Dans un premier temps, je comptais faire une association réflexive mais je pense pas que cela soit possible car comment introduire la notion de niveau d'un bâtiment ?

    Je suis maintenant parti sur l'idée de créer une table batiment_requiert_batiment avec 3 champs.

    -1 champ id référençant le batiment dont nous recherchons les dépendances (champ id de la table batiments)
    -1 champ id_dependance référencant un bâtiment constituant une dépendance de ce bâtiment (champ id de la table batiments lui aussi)
    -1 champ niveau pour le niveau du bâtiment constituant la dépendance

    la clé primaire étant constituée des 2 premiers champs

    nous pourrons donc avoir ce genre d’enregistrements :

    1 2 3
    1 3 2

    est ce la bonne solution ?

    Merci de vos avis

  2. #2
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Jecomprendsrien ,

    Ton idée d'association réflexive est la bonne : c'est, d'ailleurs, la solution que tu décris !... c'est cette association qui contiendrait le niveau nécessaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Batiment -0,n--+
       |           |
       |   [Nécessiter la construction] (niveau imposé)
       |           |
       +------0,n--+
    Batiment(IdBatiment, Nom, ...)
    Liaison_Batiment(#IdBatiment_pere, #IdBatiment_fils, Niveau_Fils,...)
    A adapter compte tenu des différents niveaux possibles par batiment.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 179
    Points : 77
    Points
    77
    Par défaut
    Bonjour Richard_35,

    effectivement je suis parti sur cette voie là

    Par contre, ce n'est pas une association réflexive dans le sens où il y a création d'une nouvelle table non ?

  4. #4
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Citation Envoyé par Jecomprendsrien
    Par contre, ce n'est pas une association réflexive dans le sens où il y a création d'une nouvelle table non ?
    ==> il ne me semble pas que le fait que cette "association" devienne une "entité" à part entière, lui fasse perdre l'attribut de "réflexive" : CinePhil pourrait, sans doute, nous éclairer das cette partie purement sémantique "merisienne".

    Mais bon, peu importe : l'essentiel est que cette association réponde au besoin.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 179
    Points : 77
    Points
    77
    Par défaut
    Merci en tout cas de m'avoir conforté dans mon idée

    En attendant d'éventuels éclaircissements de CinéPhil ou autre, merci encore

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par jecomprendsrien Voir le message
    Par contre, ce n'est pas une association réflexive dans le sens où il y a création d'une nouvelle table non ?
    Ne pas confondre "association", qui fait partir du MCD merisien, et "table", qui est un élément d'une base de données dans un SGBD.
    C'est peu comme si vous confondiez le dessin de la coiffe d'Ariane sur le plan et sa réalité physique au sommet de la fusée !

    Votre association est bien une association réflexive puisque des deux côtés de celle-ci on trouve la même entité type. Du fait de ses cardinalités maximales à n sur ses deux branches, elle engendrera la création de ce que j'appelle une "table associative" dans la base de données.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 179
    Points : 77
    Points
    77
    Par défaut
    Merci de ces explications CinéPhil

    Finalement une association réflexive n'a aucun sens dans le monde des SGBD alors seulement dans le monde merisien ?

    Ci dessous, j'ai fais une image de mon schéma de BDD, qu'en pensez vous ?

    Sachant que :

    -un bâtiment nécessite 0-n bâtiments de niveau X pour être construit
    -un bâtiment nécessite 0-n technologies de niveau X pour être construit
    -une technologie nécessite 0-n technologies de niveau X pour être développée
    -une technologie nécessite 0-n bâtiments de niveau X pour être développée

    Nom : Pas de nom.png
Affichages : 154
Taille : 29,1 Ko

    Merci encore

  8. #8
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Je ne connais pas ce formalisme, mais quel est l'intérêt de :
    Batiment -1,1---[Coûter]---1,1- Base_Batiment
    Technologie -1,1---[Coûter]---1,1- Base_Technologie
    ?

    A moins que ce ne soit :
    Batiment -0,1---[Coûter]---1,1- Base_Batiment
    Technologie -0,1---[Coûter]---1,1- Base_Technologie
    et, dans ce cas, je le comprends.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 179
    Points : 77
    Points
    77
    Par défaut
    En fait, mes tables base_[batiments / technologies] correspondent à des tables que je pourrais qualifier de "read-only". Les seuls enregistrements présents seront ceux crées lors de la mise en place de la BDD.

    Ces tables correspondent aux prix au niveau 1 des bâtiments et des technologies. Sachant que le prix d'un bâtiment au niveau n+1 correspond au prix de ce bâtiment au niveau n multiplié par un facteur encore à définir il suffit de connaitre la valeur au niveau 1 pour connaitre le prix au niveau n : Pn = P1 * coeff ^ n.

    La table batiments est une table d'association entre une table planete (non présente sur l'image fournie) et la table base_batiments avec un champs niveau qui me permettra de calculer le coût de la prochaine construction de bâtiment.

    Le principe est le même pour les tables technologies et base_technologies.

    Certes je pourrais regrouper les tables bases_ avec leurs homologues mais ce ne serait pas très "propre" du moins je pense, car j'aurais pour chaque enregistrement le niveau et le prix au niveau 1 que la technologie ou le bâtiment soit au niveau 1 ou n.

    J'espère m'être bien expliqué.

    Pour les cardinalités, il est vrai je pense que je devrais utiliser 0-n au lieu de 1-1. En effet, un bâtiment peut être construit sur aucune ou plusieurs planètes.

  10. #10
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Bonjour,

    Il serait peut être utile de faire un héritage au dessus des entités bâtiment et technologie. On voit que les deux entités peuvent être un prérequis pour donner accès à un bâtiment ou une technologie. Vous aurez 1 seule association réflexive au lieu des association croisées entre technologie et batiment.

    De plus les deux entités possèdent beaucoup d'attributs communs.

    Les différences entre ces entités nécessitant une spécialisation est déjà présente sur votre modèle.

    Cela devrait énormément simplifier votre modèle et les futures requêtes sur celui-ci.

  11. #11
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Je reconnais dans ton schéma des concepts vu dans un jeu en ligne inspiré de Stargate.

    Je pense que tes cardinalités entre "BASE_TECHNOLOGIES" et "TECHNOLOGIES" et entre "BASE_BATIMENTS" et "BATIMENTS" sont fausses.

    Ce que je comprends est que la partie basse de ton schéma décrit les règles pour qu'un joueur puisse développer des technologies et construire des bâtiments et que la partie haute (BATIMENTS et TECHNOLOGIES) décrit les vrais bâtiments construits sur les planètes et les vraies technologies développées par le joueur.

    Je suppose qu'un joueur peut développer plusieurs technologies et peut construire plusieurs bâtiments non ?
    Donc les cardinalités sont les suivantes :
    batiment -1,1----typer----0,n- base_batiment
    technologie -1,1----typer----0,n- base_technologie

    Au passage, remarque que je nomme les entités types de mon MCD au singulier car elles sont issues de règles de gestion où l'on décrit ce qui se passe pour 1 bâtiment ou pour 1 technologie :
    "Un bâtiment est typé selon une base bâtiment et une base bâtiment peut typer plusieurs bâtiments."

    Venons-en à la suggestion de vmolines...
    Il est vrai que BASE_BATIMENTS et BASE_TECHNOLOGIES ont les mêmes propriétés mais elles définissent deux concepts sémantiquement différents et n'ont pas les mêmes associations, l'une avec BATIMENTS, l'autre avec TECHNOLOGIES.
    Mais un héritage de données est quand même envisageable, de ce genre :
    BASE_TECHNOLOGIE -(1,1)----être----0,1- BASE
    BASE_BATIMENT -(1,1)----être----0,1------------|

    Comme les actuelles BASE_BATIMENTS et BASE_TECHNOLOGIES ont les mêmes propriétés, celles-ci se retrouveraient dans la nouvelle entité type BASE et les nouvelles tables issues des entités filles BASE_BATIMENT et BASE_TECHNOLOGIE n'auraient qu'un identifiant, clé primaire et clé étrangère référençant l'identifiant de BASE.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  12. #12
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Pour ma suggestion d'héritage, je parlais bien sur des entités base_batiment et base_technologie et non de leurs "instances" batiment et technologie.

    Le plus gros gain avec un héritage pour ces deux entités se situerait sur les associations décrivant les prérequis entre les bases. On passe de 2x2 tables d'association à 1x1 table d'association :

    BASE --- (0,n) --- requiert --- (0,n) --- BASE

  13. #13
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    En es-tu sûr vmolines ?

    Fonctionnellement l'association ce fait bien sur les entitées filles et non la mère.

    De plus, remonter cette association au niveau de la mère impliquerai la création d'une contrainte check afin de vérifier que physiquement on garde bien les prérequis fonctionnel

  14. #14
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    D'après le Modèle E/R donné par "jecomprendsrien" , un bâtiment ou une technologie peuvent requérir une à plusieurs technologies et/ou bâtiments.

    Je pense donc que vmolines a raison et qu'en généralisant tout ça on obtient bien la règle de gestion suivante :
    Une base (bâtiment ou technologie) peut requếrir plsuieurs bases (bâtiment et/ou technologie) et une base peut être requise par plusieurs autres bases.

    Même pas besoin de CHECK, si ce n'est peut-être pour empêcher qu'une base se requière elle-même, ce qui empêcherait la création du premier batiment de ce type ou le développement de la première technologie de ce type.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  15. #15
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    j'avais loupé cette donnée, effectivement.

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 179
    Points : 77
    Points
    77
    Par défaut
    Bonjour,

    je reviens avec du retard et la tête en compote à cause d'une grosse migraine

    J'ai lu avec attention vos propositions d'héritage qui me semble en effet intéressante. Si je comprends bien votre raisonnement (je n'ai pas une grande habitude de la modélisation), il faudrait introduire une entité générique BASE qui inclurait des technologies et des bâtiments ?

    Mes entités actuelles BASE_[T/B], TECHNOLOGIE_REQUIERT_TECHNOLOGIE, TECHNOLOGIE_REQUIERT_BATIMENT, BATIMENT_REQUIERT_BATIMENT et BATIMENT_REQUIERT_TECHNOLOGIE sont donc simplement à transformer en 2 entités BASE et BASE_REQUIERT_BASE ?

    Comment puis je aussi faire le distinguo entre un bâtiment et une technologie aussi ? En ajoutant un champ booléen est_un_batiment dans l'entité BASE par exemple ?

    Et si j'ai des champs qui apparaissent et qui spécialisent un bâtiment ou une technologie, il me suffira donc de créer une sous table avec une référence vers la clé primaire de BASE ?

    Merci encore pour vos idées

  17. #17
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par jecomprendsrien Voir le message
    Si je comprends bien votre raisonnement (je n'ai pas une grande habitude de la modélisation), il faudrait introduire une entité générique BASE qui inclurait des technologies et des bâtiments ?
    Oui.

    Mes entités actuelles BASE_[T/B], TECHNOLOGIE_REQUIERT_TECHNOLOGIE, TECHNOLOGIE_REQUIERT_BATIMENT, BATIMENT_REQUIERT_BATIMENT et BATIMENT_REQUIERT_TECHNOLOGIE sont donc simplement à transformer en 2 entités BASE et BASE_REQUIERT_BASE ?
    Commence par là oui.
    Nota : BASE_REQUIERT_BASE n'est pas une entité mais une table associative issue de l'association requérir de ce MCD :
    BASE -0,n----requérir
    |--------0,n---------|

    <une seule entité dans ce MCD : BASE.

    Comment puis je aussi faire le distinguo entre un bâtiment et une technologie aussi ? En ajoutant un champ booléen est_un_batiment dans l'entité BASE par exemple ?
    Si, comme le suggère ton schéma, technologie et base ont les mêmes propriétés, oui, c'est suffisant.

    Et si j'ai des champs qui apparaissent et qui spécialisent un bâtiment ou une technologie, il me suffira donc de créer une sous table avec une référence vers la clé primaire de BASE ?
    Oui, c'est ça qu'on appelle un héritage de données.

    base_technologie -(1,1)----être----0,1- base
    base_bâtiment -(1,1)----être----0,1--------|

    base (bas_id, [colonnes communes aux bases_bâtiments et aux bases_techno])
    base_technologie (btc_id_base, [colonnes spécifiques aux bases_techno])
    base_batiment (bbt_id_base, [colonnes spécifiques aux bases_bâtiments])
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 179
    Points : 77
    Points
    77
    Par défaut
    Merci pour cette réponse rapide, claire et précise.

    J'ai effectué quelques modifications. En PJ mon ancien et nouveau schéma de BDD.

    Nota : j'ai 2 tables POSSEDE_BATIMENTS et POSSEDE_TECHNOLOGIES car un bâtiment est possédé par un joueur sur une planète tandis qu'une technologie est possédée par un joueur pour toutes les planètes.

    Qu'en pensez vous ?

    Merci

    Nom : premier.png
Affichages : 172
Taille : 62,9 Ko

    Nom : second.png
Affichages : 209
Taille : 34,5 Ko

  19. #19
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Attention aux cardinalités !
    Tu as toujours 1-1 entre BASE et DEVELOPPEMENTS (qui devrait être au singulier, comme les autres au dessus d'ailleurs !).
    Un développement est issu d'une base mais une base peut donner plusieurs développements.

    Tes deux tables associatives sont bonnes puisque qu'elles sont bien le reflet de deux associations distinctes.

    Par contre, tu as créé BATIMENT_REQUERT_BASE. N'avais-tu pas dit qu'une technologie pouvait aussi requérir des bâtiments pour être développée ?
    Cela ne devrait-il donc pas être BASE_REQUIERT_BASE ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 179
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Attention aux cardinalités !
    Tu as toujours 1-1 entre BASE et DEVELOPPEMENTS (qui devrait être au singulier, comme les autres au dessus d'ailleurs !).
    Un développement est issu d'une base mais une base peut donner plusieurs développements.
    Effectivement, j'ai douté tout à l'heure sur les cardinalités alors qu'une fois la situation expliquée en français, les cardinalité apparaissent de façon évidentes

    Citation Envoyé par CinePhil Voir le message
    Tes deux tables associatives sont bonnes puisque qu'elles sont bien le reflet de deux associations distinctes.
    Ok

    Citation Envoyé par CinePhil Voir le message
    Par contre, tu as créé BATIMENT_REQUERT_BASE. N'avais-tu pas dit qu'une technologie pouvait aussi requérir des bâtiments pour être développée ?
    Cela ne devrait-il donc pas être BASE_REQUIERT_BASE ?
    Oui c'est une coquille que j'ai modifié aussitôt mes PJ postées et que j'ai eu la "flemme" de mettre à jour en PJ.

    Merci à tous en tout cas pour vôtre aide, je crois que sur ce point précis, je n'ai plus de questions (je mettrai en résolu dans quelques heures).

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

Discussions similaires

  1. [MCD] Problème d'association réflexive, ou pas ?
    Par LePoussain dans le forum Schéma
    Réponses: 7
    Dernier message: 07/07/2014, 11h17
  2. association réflexive 3 pattes
    Par eric leclercq dans le forum Schéma
    Réponses: 4
    Dernier message: 21/05/2007, 12h54
  3. Question sur une association réflexive
    Par H1B4K dans le forum Schéma
    Réponses: 3
    Dernier message: 29/09/2006, 20h03
  4. [MCD] Héritage restreint d'association réflexive sur mère
    Par n00bi dans le forum Schéma
    Réponses: 5
    Dernier message: 19/04/2006, 13h00
  5. [merise]traduire en sql une association réflexive
    Par omega dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/03/2004, 18h10

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