Дизайн таблицы пользователей базы данных, для конкретного сценария - PullRequest
0 голосов
/ 03 августа 2011

Я знаю, что на этот вопрос задавали и отвечали много раз, и я потратил приличное количество времени на чтение следующих вопросов:

Проблема в том, что, похоже, существует несколько равномерное распределение сторонников для нескольких классов решений:

  • Вставьте пользовательские настройки в одну таблицу, если она нормализована
  • Разделите его на две таблицы с номерами от 1 до 1, например, «users» и «user_settings»
  • Обобщите это с помощью некоторой системы значений ключей
  • Флаги настройки ручки в битовом поле или другой сериализованной форме

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

  • В настоящее время мой сайт имеет однопользовательскую таблицу в MySQL, содержащую около 10-15 столбцов (идентификатор, имя, адрес электронной почты, пароль ...)

  • Я бы хотел добавить набор настроек для каждого пользователя, чтобы отправлять оповещения по электронной почте для различных типов событий (notify_if_user_follows_me, notify_if_user_messages_me, notify_when_friend_posts_new_stuff ...)

  • Я предполагаю, что в будущем я буду нечасто добавлять одноразовые настройки для каждого пользователя, которые в большинстве случаев составляют 1: 1 для пользователей.

Я склоняюсь к созданию второй таблицы user_settings и добавляю туда «несущественную» информацию, такую ​​как настройки уведомлений по электронной почте, чтобы сделать основной пользовательский стол более читабельным, но очень любопытно услышать, что ожидают от сказать.

Ответы [ 2 ]

1 голос
/ 03 августа 2011

Кажется, что ваша дилемма состоит в вертикальном разделении пользовательской таблицы или нет.Вы можете прочитать это SO Q / A тоже .

0 голосов
/ 03 августа 2011

Я собираюсь отдать свой голос за добавление двух таблиц ... (некоторая система значений ключей sota)

предпочтительнее (мне) добавлять данные вместо столбцов ... итак,

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

следующие вещи: notify_if_user_follows_me, notify_if_user_messages_me, notify_when_friend_posts_new_stuff. станет вставкой строк с идентификатором, и вы сможете ссылаться на них в любое время и расширять их по мере необходимости, не меняя схему.

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