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 :

Relation réflexive (n:n) [MLD]


Sujet :

Schéma

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Relation réflexive (n:n)
    Bonjour à tous, je conçois actuellement une application web avec le Framework Laravel. Pour cette application j'ai mis en place une base de données qui va contenir mes différentes tables, mais j'ai incertitude concernant une table. En fait, c'est la table "villes" qui a une relation réflexive n:n. C'est à dire qu'une ville peut constituer une ligne avec plusieurs villes et vis-versa. Voici la schématisation :
    Nom : Relation reflexive symetrique n à n.PNG
Affichages : 1002
Taille : 32,8 Ko

    Alors voila je propose comme MLD de cette relation.
    villes(id, id_villeDepart, id_VilleArrive, distance).
    Mes questions sont les suivantes :
    1- Ai-je fais une bonne transformation du MCD en MLD ?
    2- Dois-je ajouter quelques éléments encore pour parfaire le MLD ?
    J'attends vos critiques les critiques les amis. N'hésitez pas à me poser des questions si vous avez des incompréhensions le sujet. Merci

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Bonsoir,
    il y a des questions en effet : "une ville peut constituer une ligne avec plusieurs villes et vis-versa" qu'est-ce à dire ?
    Plantez le décor, quelle est le contexte ?
    Expliquez ce qu'est une ligne ?
    Donnez des exemples...

    PS : vice versa plutôt que vis-versa

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    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 : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par KONE540 Voir le message
    Alors voila je propose comme MLD de cette relation.
    villes(id, id_villeDepart, id_VilleArrive, distance).
    Mes questions sont les suivantes :
    1- Ai-je fais une bonne transformation du MCD en MLD ?
    Non : la colonne ID est strictement inutile. Les colonnes id_villeDepart, id_VilleArrive seront à la fois PK et FK.

    2- Dois-je ajouter quelques éléments encore pour parfaire le MLD ?
    Non
    J'attends vos critiques les critiques les amis. N'hésitez pas à me poser des questions si vous avez des incompréhensions le sujet. Merci
    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/ * * * * *

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Bonsoir,
    il y a des questions en effet : "une ville peut constituer une ligne avec plusieurs villes et vis-versa" qu'est-ce à dire ?
    Plantez le décor, quelle est le contexte ?
    Expliquez ce qu'est une ligne ?
    Donnez des exemples...

    PS : vice versa plutôt que vis-versa
    En fait une "ligne" représente le trajet entre deux villes.
    Comme exemple: villeA-VilleB forment une ligne. J'espère que c'est un peu plus claire maintenant.

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Dans ce cas la réponse fournie par SQLPro est la bonne : évacuez l'attribut "id" inutile, d'ailleurs, si vous utilisez un logiciel de modélisation, lors de la génération du MLD à partir du MCD cette erreur ne se produira pas

    Par contre attention : ce modèle n'est valable que s'il n'existe qu'un et un seul trajet pour aller d'une ville à une autre. Est-ce bien le cas ?

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Dans ce cas la réponse fournie par SQLPro est la bonne : évacuez l'attribut "id" inutile, d'ailleurs, si vous utilisez un logiciel de modélisation, lors de la génération du MLD à partir du MCD cette erreur ne se produira pas

    Par contre attention : ce modèle n'est valable que s'il n'existe qu'un et un seul trajet pour aller d'une ville à une autre. Est-ce bien le cas ?
    Comment ça? Mais la villeA peut former un trajet avec la villeB, former aussi un trajet avec la villeC, la villeD etc... Et comme la villeB forme un trajet avec la villeC...

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Non : la colonne ID est strictement inutile. Les colonnes id_villeDepart, id_VilleArrive seront à la fois PK et FK.Non

    A +
    Ok Merci. Mais comment je pourrai ajouter des valeurs à ces des colonnes ?

  8. #8
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par KONE540 Voir le message
    Comment ça? Mais la villeA peut former un trajet avec la villeB, former aussi un trajet avec la villeC, la villeD etc... Et comme la villeB forme un trajet avec la villeC...
    Oui sur ce point votre modèle ne pose pas de problème, mais si vous avez au moins deux trajets pour aller de VilleA vers VilleB, alors ça ne va pas

  9. #9
    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
    Vite fait en ayant lu en diagonale...

    Ce n'est pas les villes que vous modélisez mais les lignes, donc ce n'est pas une relation réflexive.

    Règles de gestion :
    R1 : Une ligne part d'une ville et une ville peut voir partir une ligne.
    R2 : Une ligne arrive dans une ville et une ville peut voir arriver une ligne.

    Nota : on suppose ici qu'il n'y a pas d'étapes dans d'autres villes sur une ligne mais ce n'est pas un gros problème pour les ajouter.

    Tables :
    te_ville_vil (vil_id, vil_nom...)
    te_ligne_lig (lig_id, lig_id_ville_depart, lig_ville_arrivee, lig_numero...)

    Contrainte d'unicité à poser éventuellement sur le couple {lig_id_ville_depart, lig_ville_arrivee} s'il ne peut pas y avoir deux lignes ayant les mêmes villes de départ et d'arrivée.
    Contrainte à poser éventuellement si une ligne ne peut pas être un circuit, c'est à dire partir d'une ville et arriver dans la même.

    Question à se poser : une ligne L a t-elle le même numéro pour l'aller et le retour (de ville V1 vers V2 et de V2 vers V1) ?
    Auquel cas il ne s'agit plus vraiment des villes de départ et d'arrivée puisqu'elles le sont alternativement.
    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 !

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Vite fait en ayant lu en diagonale...

    Ce n'est pas les villes que vous modélisez mais les lignes, donc ce n'est pas une relation réflexive.

    Règles de gestion :
    R1 : Une ligne part d'une ville et une ville peut voir partir une ligne.
    R2 : Une ligne arrive dans une ville et une ville peut voir arriver une ligne.

    Nota : on suppose ici qu'il n'y a pas d'étapes dans d'autres villes sur une ligne mais ce n'est pas un gros problème pour les ajouter.

    Tables :
    te_ville_vil (vil_id, vil_nom...)
    te_ligne_lig (lig_id, lig_id_ville_depart, lig_ville_arrivee, lig_numero...)

    Contrainte d'unicité à poser éventuellement sur le couple {lig_id_ville_depart, lig_ville_arrivee} s'il ne peut pas y avoir deux lignes ayant les mêmes villes de départ et d'arrivée.
    Contrainte à poser éventuellement si une ligne ne peut pas être un circuit, c'est à dire partir d'une ville et arriver dans la même.

    Question à se poser : une ligne L a t-elle le même numéro pour l'aller et le retour (de ville V1 vers V2 et de V2 vers V1) ?
    Auquel cas il ne s'agit plus vraiment des villes de départ et d'arrivée puisqu'elles le sont alternativement.
    Merci, mais je ne comprends pas bien la 2e table.
    Pour la question, je pense que pour une ligne de transport, V1-V2 = V2-V1. Que pensez vous?
    Je vous fait un résumé du contexte pour que vous puissiez bien comprendre mon problème.
    Je veux créer une application web permettant aux utilisateurs de connaître les Tarifs des Trajets, les Compagnies qui les effectuent, d'autres informations encore mais qui sont pas nécessaire pour résoudre le problème.
    En fait, mon problème se situe aux niveau des trajets. Dans mon cas un trajet est constitué d'un point de départ et un point d'arrivée. Le point de départ comme le point d'arrivée sont des villes.
    D'abord, j'ai pensé a créer la table trajet(ligne) en y ajouter comme propriétés villeDepart, villeArrivé et distance qui représente le nombre de kilomètres entre les deux villes. Là, j'ai un problème car je veux afficher des informations sur chaque ville comme le nombre de population, la superficie et le maire.
    Donc la table trajet je dois enlever les deux propriétés (id, villeDepart, villeArrivé, distance).
    Ensuite, j'ai pensé à créer les tables
    villeDepart(id, nom, population, superficie, maire)
    villeArrivé(id, nom, population, superficie, maire)
    Et l'association entre les deux tables donne trajet(id_villeDepart,id_villeArrivé, distance)
    Là encore je remarque que les tables villeDepart et villeArrivé ont les mêmes propriétés, alors pourquoi ne pas créer une seule table ville avec les mêmes propriétés et faire une relation réflexive. Donc j'obtiens finalement :
    ville(id,population, superficie, maire) et comme association trajet(#id_villeDepart, #id_villeArrivé, distance) .
    Je veux savoir maintenant comment dois-je faire pour attribuer des valeurs à ces deux propriétés(#id_villeDepart, #id_villeArrivé).
    J'espère que j'ai été un peu plus claire pour que vous compreniez le problème, merci.

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Vite fait en ayant lu en diagonale...

    Ce n'est pas les villes que vous modélisez mais les lignes, donc ce n'est pas une relation réflexive.

    Règles de gestion :
    R1 : Une ligne part d'une ville et une ville peut voir partir une ligne.
    R2 : Une ligne arrive dans une ville et une ville peut voir arriver une ligne.

    Nota : on suppose ici qu'il n'y a pas d'étapes dans d'autres villes sur une ligne mais ce n'est pas un gros problème pour les ajouter.

    Tables :
    te_ville_vil (vil_id, vil_nom...)
    te_ligne_lig (lig_id, lig_id_ville_depart, lig_ville_arrivee, lig_numero...)

    Contrainte d'unicité à poser éventuellement sur le couple {lig_id_ville_depart, lig_ville_arrivee} s'il ne peut pas y avoir deux lignes ayant les mêmes villes de départ et d'arrivée.
    Contrainte à poser éventuellement si une ligne ne peut pas être un circuit, c'est à dire partir d'une ville et arriver dans la même.

    Question à se poser : une ligne L a t-elle le même numéro pour l'aller et le retour (de ville V1 vers V2 et de V2 vers V1) ?
    Auquel cas il ne s'agit plus vraiment des villes de départ et d'arrivée puisqu'elles le sont alternativement.
    Merci, mais je ne comprends pas bien la 2e table.
    Pour la question, je pense que pour une ligne de transport, V1-V2 = V2-V1. Que pensez vous?
    Je vous fait un résumé du contexte pour que vous puissiez bien comprendre mon problème.
    Je veux créer une application web permettant aux utilisateurs de connaître les Tarifs des Trajets, les Compagnies qui les effectuent, d'autres informations encore mais qui sont pas nécessaire pour résoudre le problème.
    En fait, mon problème se situe aux niveau des trajets. Dans mon cas un trajet est constitué d'un point de départ et un point d'arrivée. Le point de départ comme le point d'arrivée sont des villes.
    D'abord, j'ai pensé a créer la table trajet(ligne) en y ajouter comme propriétés villeDepart, villeArrivé et distance qui représente le nombre de kilomètres entre les deux villes. Là, j'ai un problème car je veux afficher des informations sur chaque ville comme le nombre de population, la superficie et le maire.
    Donc la table trajet je dois enlever les deux propriétés (id, villeDepart, villeArrivé, distance).
    Ensuite, j'ai pensé à créer les tables
    villeDepart(id, nom, population, superficie, maire)
    villeArrivé(id, nom, population, superficie, maire)
    Et l'association entre les deux tables donne trajet(id_villeDepart,id_villeArrivé, distance)
    Là encore je remarque que les tables villeDepart et villeArrivé ont les mêmes propriétés, alors pourquoi ne pas créer une seule table ville avec les mêmes propriétés et faire une relation réflexive. Donc j'obtiens finalement :
    ville(id,population, superficie, maire) et comme association trajet(#id_villeDepart, #id_villeArrivé, distance) .
    Je veux savoir maintenant comment dois-je faire pour attribuer des valeurs à ces deux propriétés(#id_villeDepart, #id_villeArrivé).
    J'espère que j'ai été un peu plus claire pour que vous compreniez le problème, merci.

  12. #12
    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
    pour une ligne de transport, V1-V2 = V2-V1. Que pensez vous?
    OK, donc un trajet (ou une ligne) relie 2 villes différentes qui peuvent être toutes deux ville de départ ou d'arrivée.
    A priori, la distance est la même de A vers B et de B vers A.

    Règle de gestion :

    R1 : Un trajet relie deux villes et une ville peut être reliée par un trajet.

    MCD :

    Ville -0,n----relier----2,2- Trajet

    Tables :
    te_ville_vil (vil_id, vil_nom...)
    te_trajet_trj (trj_id, trj_id_ville1, trj_id_ville2, trj_distance...)

    connaître les Tarifs des Trajets, les Compagnies qui les effectuent
    Règle de gestion :
    R2 : Une compagnie peut desservir plusieurs trajets et un trajet peut être desservi par plusieurs compagnies.

    MCD :
    Compagnie -0,n----desservir----0,n- Trajet

    Tables :
    te_compagnie_cmp (cmp_id, cmp_nom...)
    tj_cmp_desservir_trj_cdt (cdt_id_compagnie, cdt_id_trajet, cdt_tarif...)

    D'abord, j'ai pensé a créer la table trajet(ligne) en y ajouter comme propriétés villeDepart, villeArrivé et distance qui représente le nombre de kilomètres entre les deux villes.
    C'est effectivement ce qu'il faut faire, comme démontré ci-dessus.

    Là, j'ai un problème car je veux afficher des informations sur chaque ville comme le nombre de population, la superficie et le maire.
    Pas de problème !

    Complétons la table des villes :
    te_ville_vil (vil_id, vil_nom, vil_population, vil_superficie, vil_nom_maire...)

    Et avec les jointures, pas de problème pour afficher toutes ces informations pour un trajet.

    Avez-vous compris la mécanique ?
    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 !

  13. #13
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    OK, donc un trajet (ou une ligne) relie 2 villes différentes qui peuvent être toutes deux ville de départ ou d'arrivée.
    A priori, la distance est la même de A vers B et de B vers A.

    Règle de gestion :

    R1 : Un trajet relie deux villes et une ville peut être reliée par un trajet.

    MCD :

    Ville -0,n----relier----2,2- Trajet

    Tables :
    te_ville_vil (vil_id, vil_nom...)
    te_trajet_trj (trj_id, trj_id_ville1, trj_id_ville2, trj_distance...)


    Règle de gestion :
    R2 : Une compagnie peut desservir plusieurs trajets et un trajet peut être desservi par plusieurs compagnies.

    MCD :
    Compagnie -0,n----desservir----0,n- Trajet

    Tables :
    te_compagnie_cmp (cmp_id, cmp_nom...)
    tj_cmp_desservir_trj_cdt (cdt_id_compagnie, cdt_id_trajet, cdt_tarif...)


    C'est effectivement ce qu'il faut faire, comme démontré ci-dessus.


    Pas de problème !

    Complétons la table des villes :
    te_ville_vil (vil_id, vil_nom, vil_population, vil_superficie, vil_nom_maire...)

    Et avec les jointures, pas de problème pour afficher toutes ces informations pour un trajet.

    Avez-vous compris la mécanique ?
    Oui j'ai compris le mécanisme, d'ailleurs c'est ce que j'avais fait. Mais mon problème se situe au niveau des attributions des valeurs aux propriétés (trj_id_ville1, trj_id_ville2) car que je sais pas comment les attribuer des valeurs.
    Est-ce possible de les remplir automatiquement?
    Ou dois-je les remplir manuellement. Merci de m'aider

  14. #14
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    L'alimentation de la BDD est du ressort du traitement, ici nous étions sur les questions liées à la modélisation des données en rapport avec le titre de votre sujet "relation réflexive n:n"

    Pour en terminer - peut-être - avec le modèle de données, confirmez vous que le trajet aller et retour sont systématiquement identiques

    Je me permets d'insister car ça me semble peu probable : les villes possèdent toutes de nombreux sens interdits qui font que le trajet dans un sens diffère de celui dans l'autre sens, ce qui évidemment modifie la distance dans un sens et dans l'autre, la durée moyenne, etc.

    Auquel cas, il faut aller plus loin dans la modélisation : vous auriez besoin de trajets (l'aller pouvant être différent du retour), ces trajets sont constitués d'étapes, chaque étape est matérialisée par un lieu de départ (qui peut être une ville ou pas) et un lieu d'arrivée (idem).

    C'est pourquoi il est très important de répondre à ces questions fondamentales avant de se lancer bille en tête dans une solution tabulaire qui ne répondra peut être pas à tous les cas

  15. #15
    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
    Mais mon problème se situe au niveau des attributions des valeurs aux propriétés (trj_id_ville1, trj_id_ville2) car que je sais pas comment les attribuer des valeurs.
    Comme a dit Escartefigue, on sort du cadre de la modélisation mais je vais quand même répondre.

    La colonne vil_id sera auto-incrémentée par la base de données. Ce sera une colonne de type entier (INTEGER) munie de l'instruction AUTO_INCREMENT si vous utilisez le SGBD MySQL ou son fork MariaDB. Si vous utilisez PostgreSQL, il faudra créer la table en indiquant le type SERIAL pour la colonne vil_id. Cela créera automatiquement une séquence associée à la colonne vil_id qui d'un type entier. Avec SQL Server, il faudra utiliser IDENTITY.
    Bref, selon le SGBD que vous utiliserez, le principe sera le même mais pas la façon de procéder.

    Concernant les clés étrangères trj_id_ville1 et trj_id_ville2, ce sera à l'application de récupérer les identifiants des villes de départ et de destination et de les utiliser pour insérer une ligne dans la table des trajets.

    Tout ça, c'est de la mécanique de base de données. Nous n'en sommes pas encore là.
    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 !

  16. #16
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Comme a dit Escartefigue, on sort du cadre de la modélisation mais je vais quand même répondre.

    La colonne vil_id sera auto-incrémentée par la base de données. Ce sera une colonne de type entier (INTEGER) munie de l'instruction AUTO_INCREMENT si vous utilisez le SGBD MySQL ou son fork MariaDB. Si vous utilisez PostgreSQL, il faudra créer la table en indiquant le type SERIAL pour la colonne vil_id. Cela créera automatiquement une séquence associée à la colonne vil_id qui d'un type entier. Avec SQL Server, il faudra utiliser IDENTITY.
    Bref, selon le SGBD que vous utiliserez, le principe sera le même mais pas la façon de procéder.

    Concernant les clés étrangères trj_id_ville1 et trj_id_ville2, ce sera à l'application de récupérer les identifiants des villes de départ et de destination et de les utiliser pour insérer une ligne dans la table des trajets.

    Tout ça, c'est de la mécanique de base de données. Nous n'en sommes pas encore là.
    C'est compris, merci beaucoup pour vos réponses.

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

Discussions similaires

  1. Réponses: 31
    Dernier message: 08/04/2024, 09h49
  2. SELECT sur relation réflexive
    Par Tchupacabra dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/11/2008, 21h30
  3. relation d'exclusion et relation réflexive
    Par DiverSIG dans le forum PowerAMC
    Réponses: 4
    Dernier message: 10/10/2008, 15h47
  4. Réponses: 3
    Dernier message: 25/06/2008, 15h21
  5. [SQL SERVER 2005] Relation réflexive
    Par abrial dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/06/2006, 11h35

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