I have an Table USER
(USER_ID, PASSWORD, NAME, …) and an Table ACCESS_ROLES
for the Users, every user can have one ACCESS_ROLE
(ONE-TO-ONE).
Which table has the Foreign Key?
I would put the USER_ID
into ACCESS_ROLES
table. Is there any best practice approach?
Advertisement
Answer
Since you will be having a one-to-one relationship, the solution suggested by Philip Kelley is better. Just add a new column in USER
called access_role_id
and then do the foreign key on the USER
table like this:
ALTER TABLE USER ADD CONSTRAINT fk_access_roles_users FOREIGN KEY (access_role_id) REFERENCES ACCESS_ROLES(access_role_id);
Do not add USER_ID
into ACCESS_ROLES
table, as you suggested.