2017-08-13 1 views
-2

J'ai deux tables comme:Devrais-je créer une relation FK sur quelle table?

-- users 
+----+--------+---------------------+----------+--------------------+ 
| id | name |  email   | password |  cookie  | 
+----+--------+---------------------+----------+--------------------+ 

-- user_detail 
+---------+-----+-------------------+----------------+ 
| user_id | age |  about  | birthday | 
+---------+-----+-------------------+----------------+ 

je dois faire une relation entre users(id) et user_detail(user_id) colonnes. Maintenant, je veux savoir, devrais-je ouvrir la table user_detail et créer une relation sur la colonne user_id de celui-ci (qui se réfère à users(id)) ou vice versa?

+0

Downvoter s'il vous plaît laisser un commentaire et expliquer ce qui ne va pas avec ma question? –

+0

Et qu'est-ce qu'une * définition * de FK? Et que dit une contrainte FK? Et quand tu as googlé ton titre tu as trouvé/appris ...? PS Downvote mouseover mouseover: "Cette question ne montre aucun effort de recherche; ...". PPS Une relation est une table, Vous voulez dire une relation. – philipxy

+1

Copie possible de [Notions de base des clés étrangères dans MySQL?] (Https://stackoverflow.com/questions/757181/basics-of-foreign-keys-in-mysql) – philipxy

Répondre

1

Vous recherchez cette syntaxe:

alter table user_details add constraint fk_user_details_user_id 
    foreign key (user_id) references users(id); 
+0

Ok thx. Juste pourquoi pas 'alter table user ajoute une contrainte fk_user_id clé étrangère (id) références user_detail (user_id);'? –

+0

@MartinAJ. . . Parce que la clé étrangère est le 'user_id' dans' user_details', c'est ainsi que la définition va. 'user.id' est la * clé primaire * de cette table. –

+0

@GordonLinoff Pourquoi répondez-vous à une question comme celle-ci qui est un doublon évident et devrait être downvoted? – philipxy