Je crée le schéma d'une de mes bases de données. J'ai deux des tableaux suivants ...Clé étrangère composite provenant de plusieurs tables
CREATE TABLE User(
userID INT AUTO_INCREMENT,
...
PRIMARY KEY(userID)
);
CREATE TABLE Tool(
toolID INT AUTO_INCREMENT,
...
PRIMARY KEY(toolID)
)
Je veux créer une table appelée hasTool qui a deux clés primaires des deux tables en utilisant une contrainte de clé étrangère. Cependant, en plus de cela, je veux faire de ces deux champs, une clé composite de la nouvelle table hasTool. J'ai essayé ce qui suit, mais il ne semble pas produire le comportement attendu:
CREATE TABLE gcHasCoordinates (
userID INT NOT NULL,
toolID INT NOT NULL,
PRIMARY KEY (userID , toolID),
CONSTRAINT foreign_key_to_User FOREIGN KEY (userID) REFERENCES Coordinate(coordinateID) ,
CONSTRAINT foreign_key_to_Tool FOREIGN KEY (toolID) REFERENCES Tool(toolID)
);
Je veux permettre à la table pour permettre plusieurs instances de userID ou toolID, mais pas les deux, et être des valeurs existantes à la fois Tables utilisateur et outil.
Merci d'avance!
Cela devrait fonctionner correctement, sauf que vous faites référence les noms de tables mal 'Références utilisateur (userid)' et 'Références outil (toolID)' –