|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : juin 2005 Messages : 110 ![]() |
Bonjour à tous,
Je suis en train de concevoir une petite application (ma première en fait), et je compte utiliser un serveur Postgresql. Je viens de me rendre compte que dans l'une de mes tables j'aurais besoin qu'une de mes clés étrangères soit aussi primaire, ou tout au moins unique. Déja, est-ce possible? Et ne vaudrait-il mieux pas créer une clé primaire et m'assurer (je ne sais pas trop comment, je croix que les contrainte le peuvent, mais je n'ai pas bien compris) que la valeur de cette clé etrangère restera bien unique dans la table? D'avance merci beaucoup pour toute suggestion et conseils |
|
|
00
|
|
|
#2 |
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 446 ![]() |
Je suppose que cette clé étrangère unique n'est pas obligatoire, sinon il suffirait de placer un index unique sur cette clé pour créer la contrainte d'unicité.
|
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() |
une clé primaire est unique dans une table et les clés étrangère reférence seulement d'autres tables, elles sont en faites des clés primaires de ces tables.
__________________
"le temps c'est le meilleur des médécins, peut être aussi le meilleur des assassins" Bernis-Francine
|
|
|
00
|
|
|
#4 | |
|
Inactif
Inscription : décembre 2003 Messages : 1 946 ![]() |
Citation:
A ma connaissance il n'y a aucune obligation qu'une colonne soit NOT NULL pour créer un index unique dessus. |
|
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : juin 2005 Messages : 110 ![]() |
Heu, je ne me suis peut-etre pas bien expliqué, en fait mon problème est de m'assurer de l'unicité d'une clé étrangère, donc je me demandais si il était possible à une clé de cumuler les "propriétés" étrangère et primaire, ou si j'avais commis une erreur de conception.
|
|
|
00
|
|
|
#6 |
|
Inactif
Inscription : décembre 2003 Messages : 1 946 ![]() |
Ta clé est primaire ou elle ne l'est pas, si elle est aussi étrangère, cela veut dire que deux tables ont la même clé... bizarre.
Rien ne t'empèche de déclarer un index unique sur une clé étrangère. |
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : juin 2005 Messages : 110 ![]() |
Merci, c'est la réaction que j'attendais, je me retrouve bien avec deux tables partageant la même clé primaire. Je ne connais pas bien les sgbdr, mais ça ne me semble pas trop normal. En fait, j'ai éclaté une table en deux pour des problèmes de droit d'accès. Certaine données peuvent être consulté par tout le monde, par contre d'autre sont confidentielles. Ce qui aurait été bien, c'est un sgbdr qui gère les droit d'accès differemment, mais j'ai pas les moyens de m'offrir oracle
Y'a t-il un moyen de faire "plus propre" que le coup de la clé étrangère avec un index unique, ou bien j'ai pas le choix? |
|
|
00
|
|
|
#8 |
|
Inactif
Inscription : décembre 2003 Messages : 1 946 ![]() |
Normalement, pour gérer des problèmes de droit d'accès différenciés, tu crées des vues et tu donnes les droits sur les vues au lieu de les donner sur les tables.
|
|
|
00
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Inscription : juin 2005 Messages : 110 ![]() |
Ok, merci beaucoup, ça va me simplifier le boulot
a bientot |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com