Нужна помощь с дизайном базы данных таблицы предпочтений - PullRequest
1 голос
/ 15 марта 2011

В настоящее время я разрабатываю веб-приложение, используя формат базы данных MYSQL InnoDB, и мне нужна некоторая помощь с моим описанием базы данных настроек.

В основном мне нужна таблица предпочтений, чтобы определить предпочтения марки автомобиля пользователя.

BMW 0 или 1 TOYOTA 0 или 1 HONDA 0 или 1 MERCEDES 0 или 1 HOLDEN 0 или 1 FORD 0 или 1 (0 означает неприязнь и 1 означает подобное)

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

Поэтому каждый пользователь в моей системе имеет свой собственный профиль предпочтений автомобиля.

Так что мой новый дизайн состоит в том, чтобы иметь пользовательскую таблицу, таблицу предпочтений и таблицу UserPreference

UserPreference table

providerId
preferenceId
response

Мой вопрос: как я могу заполнить строки профиля предпочтений пользователя в базе данных (по умолчанию все равны 0) один раз врегистрация нового пользователя?

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

Какой подход лучше?

UserPreference table

    providerId
    preferenceId

Большое спасибо заранее!

1 Ответ

1 голос
/ 15 марта 2011

Я думаю, что второй подход - лучший вариант. Добавляйте только те предпочтения, которые люди явно выбрали. Таким образом, при работе с данными вы можете предположить, что все равно 0, если в таблице нет предпочтений, чтобы показать обратное.

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