2016-11-22 2 views
0

Я начал преобразовывать всю базу данных в нормализованную базу данных. Но есть одна вещь, которую я не понимаю, о взаимоотношениях:Отношение MYSQL к одному

Скажем, у меня есть 2 таблицы:

Users 
-userID (INT-PK) 
-userName (varchar) 
_favColor (int) 

И:

Colors 
-colorID (INT-PK) 
-colorName (varchar) 

Теперь, очевидно, я должен создать отношения, вопрос is: Должен ли я установить связь между таблицей цветов и таблицей пользователей или между таблицей пользователей и таблицами цветов?

Что я заметил, так это то, что при создании отношений отношения не отображаются в обеих таблицах, она появляется только в одном из них, и это меня смущает.

+1

Я бы сделал favColor FK в таблице цветов. У многих людей такой же любимый цвет. Сделав его внешним ключом, вы можете убедиться, что цвет существует в таблице цветов. –

+0

таблица users будет содержать color_id –

ответ

1

В этом примере я бы порекомендовал отношения 1: M, переходя от цветов к пользователям.

Это связано с тем, что для таблицы пользователей требуется информация из таблицы цветов, поэтому у вас должно быть соотношение 1: M, так как разные пользователи могут иметь одинаковый любимый цвет.

+0

Итак, если я создаю связь между цветами для пользователей, я бы не смог установить одинаковый цвет для разных пользователей? – Coder

+0

Пользователи._favColor должны быть внешним ключом в таблице цветов. Вы сможете установить любой цвет для любых пользователей. –

Смежные вопросы