Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Discussion: Diviser une table

  1. #1
    Invité de passage
    Homme Profil pro
    Inscrit en
    août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : août 2012
    Messages : 4
    Points : 0
    Points
    0

    Par défaut Diviser une table

    Bonjour,

    j'ai actuellemnt une table 'Excursions' qui contient un Id, start, end, ...

    En fonction du type d'activite un grand nombre de cellule sont vides et je voudrais diviser ma table en une table 'mere' qui contiendrait les elements communs a toutes excursions (start, end,...) et plusieurs tables filles, ex: exterieure (adresse, itineraire, .. ); sousTraitees (nomSousTraitant, prix,..), motorisees (permisNecessaire, itineraire,..), ...

    Dans mon idee je dois avoir une table 'activite', une table 'Type' (qui est une liste du type d'activite que nous proposons) et des tables 'exterieur', 'sousTrait', autres.

    Je ne trouve pas le moyen de lier ma table mere a une et une seule des tables filles.

    Merci de votre aide.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    janvier 2010
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2010
    Messages : 3 166
    Points : 5 848
    Points
    5 848

    Par défaut

    Bonjour,

    Il vous faudra passer par des triggers : tout est détaillé dans l'article de SQLPro sur l'héritage

  3. #3
    Expert Confirmé Sénior
    Inscrit en
    août 2008
    Messages
    2 185
    Détails du profil
    Informations forums :
    Inscription : août 2008
    Messages : 2 185
    Points : 4 022
    Points
    4 022

    Par défaut

    Sinon je pense qu'il est possible de créer une contrainte d'unicité sur (id_activite, id_type) de la table activite (ou de modifier la PK existante).
    Puis de rajouter l'id_type dans les tables filles référençant cette clé unique double de la table mère. Et enfin de rajouter une contrainte check sur l'id_type des tables filles.

    type (id_type, ...) (exemple 1=> exterieur, 2=> soustraitant ...)
    activite (id_activite, #id_type, ...) + UK(id_activite, #id_type)
    exterieur (#id_activite,#id_type, ...) + check id_type = 1
    sousTrait (#id_activite, #id_type, ...) + check id_type = 2

    # => FK
    _ => PK

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    juin 2002
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : juin 2002
    Messages : 317
    Points : 462
    Points
    462

    Par défaut

    Bonjour, tu peux généraliser encore plus le système.

    Tables:

    Excursion
    ExtraInfoType
    ExtraInfo



    Si tu as besoin d'information plus complexe, tu peux soit diviser tes types d'info extra en plusieurs type ou simplement sauvegarder des données complexes sous forme JSON ou XML.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •