J'ai les tableaux suivants (clé primaire dans gras. Clé étrangère dans italique )
Puis-je avoir deux clés étrangères dans la table Customer et comment puis-je l'implémenter dans MySQL?
mis à jour
Je développe un système de comptabilité basé sur le Web pour un projet final.
Catégorie de compte
Type de compte -------------- Solde
Les atouts
Passif
Équité
Dépenses
Le revenu
Atout
à recevoir
Compte à recevoir
J'ai dessiné le diagramme ER (Entity relation) à l'aide d'un logiciel et lorsque je spécifie la relation, il a automatiquement ajouté les plusieurs clés étrangères comme indiqué ci-dessus. Le design n'est-il pas assez sonore?
Oui, MySQL le permet. Vous pouvez avoir plusieurs clés étrangères sur la même table.
Obtenez plus de détails ici Contraintes FOREIGN KEY
create table Table1
(
id varchar(2),
name varchar(2),
PRIMARY KEY (id)
)
Create table Table1_Addr
(
addid varchar(2),
Address varchar(2),
PRIMARY KEY (addid)
)
Create table Table1_sal
(
salid varchar(2),`enter code here`
addid varchar(2),
id varchar(2),
PRIMARY KEY (salid),
index(addid),
index(id),
FOREIGN KEY (addid) REFERENCES Table1_Addr(addid),
FOREIGN KEY (id) REFERENCES Table1(id)
)
Les clés étrangères de votre schéma (sur Account_Name
et Account_Type
) ne nécessite aucun traitement ni syntaxe particuliers. Déclarez simplement deux clés étrangères distinctes sur la table Client. Ils ne constituent certainement pas une clé composite dans un sens significatif de la Parole.
Il existe de nombreux autres problèmes avec ce schéma, mais je soulignerai simplement que ce n'est généralement pas une bonne idée de créer une clé primaire à partir de plusieurs colonnes uniques ou de colonnes dans lesquelles l'une est fonctionnellement dépendante d'une autre. Il semble qu'au moins un de ces cas s'applique aux colonnes ID et Nom de la table Client. Cela vous permet de créer deux lignes avec le même ID (nom différent), ce que je suppose que vous ne voulez pas autoriser.