Помощь со списком друзей MySQL - PullRequest
2 голосов
/ 16 сентября 2011

Я создаю приложение для Android, которое будет использовать список друзей.Насколько я знаю, вы не можете хранить массив в таблице MySQL, поэтому мне кажется, что мне придется создать отдельную таблицу из моей таблицы «Users» и назвать ее, скажем, «Friends».В этой таблице будут только Friend1 и Friend2.

Мой вопрос является предпочтительным способом хранения этой таблицы.Я могу использовать поле UserName (строка) из моей таблицы «Users» для их хранения или поле UserID (целое число) из моей таблицы «Users».Использование идентификатора сделает таблицу меньше, потому что маленькие целые числа занимают больше места, чем строка, но в то же время я обращаюсь к этим данным, главным образом, через поле UserName (поэтому мне нужно запросить таблицу Users, чтобы получить UserID изТаблица пользователей).

Какой метод предпочтителен для таблицы MySQL?Используя имя пользователя напрямую, чтобы мне не приходилось искать идентификатор пользователя из таблицы «Пользователи», или сохранять таблицу как два целых числа, и запрашивать, чтобы найти идентификатор из имени пользователя?Спасибо.

Ответы [ 2 ]

1 голос
/ 16 сентября 2011

Сохраните два ключа userID из таблицы users.

Допустим, вы изменили имя контакта с «Guy from bar» на «Mr. McMoneypants».Если этот контакт был другом, он все равно будет отображаться как «Парень из бара» даже после изменения.

Старайтесь, чтобы данные не жили в нескольких местах.

0 голосов
/ 16 сентября 2011

Предпочтительным методом является использование идентификатора пользователя из таблицы «Пользователи» в таблице «Друзья» в качестве способа ссылки на этого пользователя.Таким образом, по словам Филиппа, Пользователь может изменить свое имя, и вам нужно изменить его только в одном месте.Кроме того, как вы говорите, ваша таблица друзей будет занимать меньше места с числовым столбцом по сравнению со строковым столбцом.

А что касается "(so I have to query the Users table to get the UserID from the Users table)", следующий запрос не слишком громоздок:

SELECT FriendName
FROM Users Natural Left Join Friends
WHERE UserName = 'Ralph';

Что касается вашего запроса, вам никогда не приходилось иметь дело со столбцом UserID.Это не намного сложнее, чем ваш метод:

SELECT FriendName
FROM Friends
WHERE UserName = 'Ralph';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...