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

Oracle Discussion :

FK sur table d'un autre schéma


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 36
    Par défaut FK sur table d'un autre schéma
    Bonjour,

    Voici mon problème, ou plutot ma question.

    On me demande si il est possible d'avoir une FK sur une table TA1 d'un schéma A qui fait référence à une table TB1 d'un schéma B. Le tout sur la même instance.

    Cela semble possible avec les droits qui vont bien, mais ça ne risque pas de poser un jour des soucis ?

    Je voudrais mettre en balance avec une vue classique ou une vue matérialisée.
    Le but est d'éviter de copier tous les jours la table de B vers A.

    Je suis en 10.2.0.4.

    Merci

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Techniquement, il n'y a pas de problème, on peut tout à fait faire pointer une clé étrangère vers une table d'un autre schéma.
    Il faudra que B fasse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     GRANT REFERENCES ON la_table TO A;
    Sur la partie philosophique, je n'ai pas d'avis car votre besoin fonctionnel n'est pas très clair à mon goût...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 36
    Par défaut
    Bonjour,

    et merci.

    Le besoin fonctionnel est le suivant :
    Nous avons un schéma qui a les tables de références, tel que civilité ou autre.
    Plutot que de dupliquer la table des civilités du schéma A vers le schéma B, on voudrait utiliser une FK dans une table de B qui pointe vers l'id civilité de B.

    Est-ce plus clair ?

  4. #4
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    C'est surtout ça que je ne trouve pas clair, car ces 3 options me paraissent hors sujet.
    Je voudrais mettre en balance avec une vue classique ou une vue matérialisée.
    Le but est d'éviter de copier tous les jours la table de B vers A.
    Pour moi ce besoin est ultra ordinaire.
    Il suffit de donner le droit SELECT sur cette table.
    Pour le confort, vous ajoutez éventuellement un synonyme.
    Et vous garantissez l'intégrité par un clé étrangère.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 36
    Par défaut
    Si ce besoin vous semble ordinaire, ok.

    Comme pour moi c'est la première fois que je fais ça, je voulais avoir un avis d'expert sur ce point, car ça me semblait source de problèmes de lier comme ça 2 schémas par une fk.
    Pour ma part je préfère dupliquer la table tous les soirs que de lié les schémas.
    La vieille école sans doute...

  6. #6
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par sgonzale Voir le message
    Pour ma part je préfère dupliquer la table tous les soirs que de lié les schémas.
    Sur le principe, ce n'est pas souhaitable.
    Il faut éviter de dupliquer inutilement les données de référence, car c'est une source d'incohérences. Une donnée de référence devrait exister en un seul endroit.
    Comme vous êtes dans la même base, la solution simple et carrée, c'est d'utiliser les privilèges et les clés étrangères interschémas.
    Ca vous assure des données cohérentes en permanence, sans aucun souci de synchronisation.

    Une table des civilités, ça ne bouge pas souvent, mais sur une table beaucoup plus évolutive, le système de la copie une fois par jour ne tient plus la route.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/09/2009, 09h54
  2. Droits sur index d'un autre schéma
    Par xant dans le forum Administration
    Réponses: 2
    Dernier message: 10/12/2008, 11h02
  3. Réponses: 1
    Dernier message: 11/04/2008, 16h08
  4. faire une requête sur une table d'un autre schéma
    Par kineton dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 10/04/2008, 15h08
  5. [9i]Copie de table dans un autre schéma.
    Par sali dans le forum Oracle
    Réponses: 5
    Dernier message: 10/02/2006, 07h52

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