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 :

pb de spécialisation table (héritage ou autre)


Sujet :

Schéma

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 159
    Points : 58
    Points
    58
    Par défaut pb de spécialisation table (héritage ou autre)
    Bonjour,

    J'ai un problème pour représenter des données.
    Voila le problème : J'ai un ensemble d'activités mais chaque activité a un type différent (il y en a 4), et seulement pour un type d'activité il y a plus d'informations.

    Donc je ne sais pas comment faire, soit créer une table "activité" et une table "type activité" mais il me reste le problème que pour un type il y a de infos en plus.
    Soit je fais un héritage, la table mère "activité" et les classes filles les 4 types "projet", "opération",...

    ou autre mais je ne vois pas.

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7 966
    Points : 30 778
    Points
    30 778
    Billets dans le blog
    16
    Par défaut
    Bonjour Fanette,

    Considérer qu'à l'entité Activité peut être attachée une entité Complément d'activité à l'usage de l'activité qui en a besoin.

    cf. Pièces jointes
    Images attachées Images attachées   
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 159
    Points : 58
    Points
    58
    Par défaut
    dans mon cas je metterai donc table "type activité" et une table "projet" avec la liaison "compléter

    ce qui signifie que si j'ai une activité de type projet j'irai remplir dans la base cette table
    MAIS comment montrer que c une relation obligatoire ????

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7 966
    Points : 30 778
    Points
    30 778
    Billets dans le blog
    16
    Par défaut
    Bonsoir Fanette,

    Fanette a écrit :
    ce qui signifie que si j'ai une activité de type projet j'irai remplir dans la base cette table
    MAIS comment montrer que c une relation obligatoire ????
    Déjà, vous devez prévoir une colonne Type_Activite permettant d'annoncer la couleur, à savoir si l'activité est de type projet ou non. Ensuite, si vous vous calez sur le standard SQL:1999, vous prévoyez une assertion du genre :

    CREATE ASSERTION Assert01 (
    ___Check Exists (Select 'vrai'
    _______________From Activité A, Projet P
    _______________Where A.Type_Activite = 'Projet'
    _______________And A.Activite_Id = P.Activite_Id)
    ___DEFERRABLE INITIALY DEFERRED ;

    et une assertion symétrique :

    CREATE ASSERTION Assert02 (
    ___Check Not Exists (Select 'vrai'
    _______________From Activité A, Projet P
    _______________Where A.Type_Activite <> 'Projet'
    _______________And A.Activite_Id = P.Activite_Id)
    ___DEFERRABLE INITIALY DEFERRED ;

    "DEFERRABLE INITIALY DEFERRED" indiquant que les contrôles ne sont pas à effectuer à l'exécution d'une mise à jour, mais plutôt en fin de tâche, situation commune dès que deux tables sont concernées.

    Quant à la façon de déclarer la chose en Merise de manière formelle, je ne sais pas.

    Concernant votre SGBD, voyez ce qu'il propose qui soit équivalent à l'instruction CREATE ASSERTION s'il ne la propose pas. Attention, si vous regardez du côté des triggers, n'oubliez pas que ceux-ci ne sont pas "DEFERRABLE", mais qu'une contrainte de clé étrangère peut l'être (au moins du point de vue du standard), c'est un peu la jungle des cas particuliers avec SQL (Sorry Query Language...) A défaut, vérifiez les assertions a posteriori...

    Bon courage...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

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

Discussions similaires

  1. Héritage avec tables liées à une autre base
    Par b_steph_2 dans le forum Access
    Réponses: 13
    Dernier message: 27/02/2007, 12h17
  2. concatenation des données d'une table dans une autre
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/10/2004, 12h38
  3. Copier d'une table vers une autre
    Par ph4prod dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/09/2004, 13h42
  4. Mettre à jour une table depuis une autre
    Par rsc dans le forum SQL
    Réponses: 4
    Dernier message: 09/07/2004, 11h08
  5. Dédoublonnage pdt copie une table a une autre
    Par Krevette dans le forum Requêtes
    Réponses: 3
    Dernier message: 15/10/2003, 15h26

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