Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : définition d'une clé étrangère [ Autre / Divers ] (gillespockpock)

vendredi 20 juin 2008 à 08:27:00 | définition d'une clé étrangère

gillespockpock

Bonjour, j'ai une question qui m'obstine, je suis en train de développer une application de création de bases de données,

je ne trouve nul par de réponse claire et complète, peut-être pourrez vous m'aider:

Dans une base de données, peut-on avoir une clé étrangère dans une table, faisant référence à seulement une partie de la clé primaire d'une autre table? Autrement dit: une clé étrangère comporte -t-elle forcément tous les champs de la clé primaire vers laquelle elle fait référence?

Si oui, pourrai-je avoir un exemple?


merci

samedi 21 juin 2008 à 00:06:24 | Re : définition d'une clé étrangère

theguitou

Salut,

Cela dépend du SGDB que tu utilise, et des champs de la clé primaire auxquels tu veux faire référence ...

Par exemple avec MySQL, un index (donc par exemple une clé primaire) définit sur ABC, peut être utilisé sur ABC, AB, ou A (mais pas sur AC, BC, B ou C).

Exemple :

CREATE TABLE table1 (A INT, B INT, C INT, PRIMARY KEY (A,B,C)) Engine=InnoDB;

CREATE TABLE table2 (A INT, B INT, C INT, FOREIGN KEY (A, B,C) REFERENCES table1(A,B,C)) Engine=InnoDB; => OK

CREATE TABLE table3 (A INT, B INT, C INT, FOREIGN KEY (A, B) REFERENCES table1(A,B)) Engine=InnoDB; => OK

CREATE TABLE table4 (A INT, B INT, C INT, FOREIGN KEY (A) REFERENCES table1(A)) Engine=InnoDB; => OK

CREATE TABLE table5 (A INT, B INT, C INT, FOREIGN KEY (A, C) REFERENCES table1(A, C)) Engine=InnoDB; => Problème

Faute de doc clair, le mieux est encore de tester !



Cette discussion est classé dans : table, données, clé, définition, étrangère


Répondre à ce message

Sujets en rapport avec ce message

Clé primaire , clé étrangère [ par emmanuel9 ] Bonjour à tous, "Aieuuuuuuu" m'a dit hier que une table n'avais pas besoin de contenir une clée primaire J'ai oublier de lui demander  : Si ma tabl Comment éviter les erreurs de clé en SQL [ par Jenojen ] Bonjour,J'aimerais savoir comment éviter d'enregistrer deux fois les mêmes données lorsqu'on passe par le SQL. En Schéma de données [ par MadM@tt ] Bonjour à tous,J'aurais besoin de votre avis au niveau de la conception d'une de mes tables.J'ai des sites à référencer dans un annuaire.J'ai une tabl Créer une table avec plusieurs autre table. [ par Hirald ] Bonjour,J'ai créer une base de données Access à partir du catalogue d'une compagnie (pour la compagnie) sauf que un manque de communication a causé le Table lock [ par Pat35 ] Bonjour,J'ai un problème de lock sur une table.Mon architecture est la suivante : - Une table de données avec des triggers qui enregistrent les PK des AIDE SVP !! URGENT [ par layaydakhaled ] Layayda Khaledj'ai un projet a faire,la soutenance est la semaine prochaine,il me faut au moin 10 trigger a faire....voici le schéma relationnel..merc Base de données MSDE [ par moneyboss ] Bonjour, Pour des besoins professionnels, je vais utiliser MSDE mais je ne connais pas ce SGBD. 1 >Je voudrais savoir s'il existe de la doc à téléch Table produit. Un produit a plusieurs prix [ par Cyru_s ] Bonjour, Je débute avec les bases de données. Je souhaite faire une base de données de matériel avec mysql. La table produit ressemblera un peu à cell pitié aidez moi avan ce soir! SQL-ACCESS/UPDATE [ par tchoukette ] J'ai un gros problème pour une requete UPDATEJ'exporte une table B dans ma base de données.Ma table met à jour ma table AIl s'agit de produits composé Import de données depuis un fichier Excel [ par BUZZ2K ] Bonjour,Afin d'allimenter ma base de donnees (une seule table en fait), je dispose d'un fichiers excel contenant les informations voulues.J'aurai aime


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,172 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.