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

Langage SQL Discussion :

Relation complexe et conditionnelle


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut Relation complexe et conditionnelle
    Bonjour,

    Je souhaite modéliser une relation complexe entre différentes tables.

    Voici mes entités :
    Continent, Pays, Ville, Catastrophe.

    Un continent regroupe plusieurs pays.
    Un Pays regroupe plusieurs villes.
    Une catastrophe affecte tout un continent ou tout un pays ou toute une ville.

    C'est cette dernière phrase qui me pose un problème. Je ne trouve pas mieux qu'une table de jointure entre les 4 entités, et des IF en php pour savoir qui est/sont concerné(s).

    Merci d'avance pour votre aide,

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    Une idée : Utiliser l'héritage.

    Règles de gestion :
    1) Une entité géographique est soit un continent, soit un pays, soit une ville
    2) Une catastrophe affecte une et une seule entité géographique

    MCD :
    Catastrophe -1,1----Affecter----0,n- Entité géo
    Continent -1,1----Etre1----0,1---------|
    Pays -1,1---------Etre2----0,1---------|
    Ville -1,1----------Etre3----0,1---------|

    Continent -0,n----Contenir1----1,1- Pays -0,n----Contenir2----1,1- Ville

    Tables :
    EntitesGeo (EG_Id, ...)
    Continents (C_Id_EG, ...)
    Pays (P_Id_EG, P_IdContinent, ...)
    Villes (V_Id_EG, V_IdPays, ...)
    Catastrophes (Cat_Id, Cat_Id_EG, ...)
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut
    J'ai du mal à obtenir le modèle physique que vous proposez malgré les précisions que vous m'avez fourni. Je ne saisis pas tout à fait quelles sont les clés étrangères et à qui elles font référence.

    Pouvez les indique avec une notation du type FK_nomCléPrimaire ?

    Merci

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 818
    Billets dans le blog
    14
    Par défaut
    Les clés primaires sont soulignées et les clés étrangères sont en italique.

    On voit que dans les tables Continents, Pays et Villes, les clés primaires sont également clés étrangères puisqu'elles héritent de la table EntitesGeo.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut
    Merci c'est plus clair maintenant.

    Dans ce cas, par quelle(s) requête(s) peut on accéder à la zone affectée d'une catastrophe donnée ?

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    tu part sur un postulat faux :
    2) Une catastrophe affecte une et une seule entité géographique
    Comme vous vous êtes limités au continent, les catastrophes intercontinentales ne pourrons être saisie. Exemple : météorite à l'origine de la disparition des dynausores, éruption du krakatoa et du santorin (tsunami de 60 m), tsunami de noêl 2004.

    Krakatoa :
    Le panache de cendres volcaniques monta à 40 Km dans l’atmosphère et répandit suffisamment de particules pour abaisser la température moyenne mondiale de 0,25°C l’année suivante.
    L’éruption fut à l’origine des couchers de soleil flamboyants, puis rouge lie-de-vin, notamment en Grande-Bretagne.
    Dans plusieurs villes des Etats-Unis, des lueurs rougeoyantes furent prises pour des incendies et l’on fit appel aux pompiers.
    Ces phénomènes se manifestèrent pendant environ trois ans. (Citation le Krakatoa, Mémoire de l'Humanité sous le direction de Nadeije Laneyrie-Dagen, maître de conférence à l'université de Lille-III)


    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [Doctrine] Relation complexe avec doctrine 1
    Par lowdance dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 08/11/2013, 20h22
  2. relations complexe entre les tables
    Par baptistehgc dans le forum Modélisation
    Réponses: 15
    Dernier message: 02/08/2012, 18h08
  3. modélisation relations complexes
    Par Yanns dans le forum Modélisation
    Réponses: 2
    Dernier message: 11/10/2011, 10h35
  4. [MySQL] Affichage conditionnelle complexe
    Par lilia_dream dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 06/04/2009, 11h20
  5. [SQL] Relations complexes entre deux tables
    Par simonoche dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/06/2007, 00h23

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