Хранить список значений (например, интересы) - PullRequest
14 голосов
/ 14 октября 2011

У меня есть таблица пользователей (ID, FNAME, LNAME, INTERESTS, ...), а также другая таблица для хранения определенного набора ИНТЕРЕСОВ, которые они могут выбрать из: Фильм, ТВ, Радио, Сцена, Standup.

Они могут иметь более одного интереса, так как я могу сохранить эту информацию в поле ИНТЕРЕСЫ пользователей?Или каков наилучший альтернативный метод для достижения этой цели?

Ответы [ 3 ]

8 голосов
/ 14 октября 2011

Это отношения многие ко многим. Вы сохраняете их, вызывая «таблицу соединений».

Table Users:
-----------
UserID PK
Name
...


Table Interests
-------
InterestID PK
Description.
....


User_interest
-----------
UserID PK, FK
InterestID PK, FK
6 голосов
/ 14 октября 2011

Прочитайте о нормализации базы данных в своей книге MySQL.Это важная тема, поэтому, вероятно, есть большая глава об этом.

Короче говоря, вы удаляете interests и в итоге вместо этого получаете третью таблицу, например:

user_id | interest_id
--------+------------
   1    |     1
   1    |     2
   2    |     1
   3    |     4

Это дает вам ваши отношения многие ко многим.

3 голосов
/ 14 октября 2011

лучшее решение для этого - использовать 3 таблицы (третья для хранения связи интересов с пользователями):

user (id, name)
interest (id, description)
user_interest (user, interest)

это называется нормализация базы данных .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...