Рекомендуется ли иметь столбец для каждого пользователя и строку для каждого пользователя в таблице SQL? - PullRequest
0 голосов
/ 22 апреля 2020

В настоящее время я разрабатываю клон типа «трут», в котором у меня есть база данных пользователей, и я хочу сохранить информацию о том, «смахнул ли» определенный пользователь (понравился) другому пользователю или «сместил влево» (не понравился) или нет см. вообще.

Я хочу создать таблицу, в которой каждая строка является отдельным пользователем, а каждый столбец - отдельным пользователем, поэтому, если у меня есть значение 1, хранящееся в строке Боба и столбце Алисы, я знаю что Боб ударил прямо по Алисе. Итак, мой вопрос, это хорошая практика? для n пользователей я должен хранить n ^ 2 значений, которые кажутся неправильными (но я думаю, что это неизбежно).

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

я впервые использую SQL, поэтому сейчас я немного растерялся. что будет лучшим способом сделать это?

1 Ответ

5 голосов
/ 22 апреля 2020

Нет, это плохая идея.

  • Для добавления новых пользователей необходимо изменить структуру8 таблицы.
  • Вы можете сохранить только один элемент информация, но у вас может быть больше за удар.
  • Идентификация «второго» пользователя не ясна, потому что он встроен в имя столбца.

Правильно сделать чтобы иметь таблицу с одной строкой на удар:

create table swipes (
    swipeId int primary key,   -- auto-incremented/identity/serial
    FromUserId int not null references users(user_id),
    ToUserId int not null references users(user_id),
    -- and then additional information you might want
    swipeTime timestamp,
    direction varchar(10)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...