[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: tblFriends
Гость_Miha
Добрый вечер.
как спроектировать таблицу друзей для мини-вконтакте? Есть наброска типа
tblFriends:

ID - autoincrement
ID1 - int - айди одного человека
ID2 - int - айди другого
ID1 дружит с ID2?
Но это не очень оптимально так, как сложно осуществуть поиск всех друзей конкретного пользователя. Может у кого - то есть мдеи по - лучше. Создавать отдельную таблицу друзей для каждого аккаунта не рассматриваю
Сорри за ошибки в словах)



Спустя 27 минут, 8 секунд (23.11.2010 - 21:11) waldicom написал(а):
Может сделать отдельную таблицу, которая могла бы выглядеть примерно так:

id
friend1Id
friend2Id

Спустя 21 минута, 58 секунд (23.11.2010 - 21:33) Guest написал(а):
чем Ваша версия таблицы отличается от моей?

Спустя 5 минут, 21 секунда (23.11.2010 - 21:39) waldicom написал(а):
Цитата (Guest @ 23.11.2010 - 20:33)
чем Ваша версия таблицы отличается от моей?

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

Спустя 3 минуты, 25 секунд (23.11.2010 - 21:42) Гость_Miha написал(а):
также есть вариант при создании аккаунта создавать для него таблицу ЕГО друзей, ЕГО, фотографий и т. д. возможно ли обойти этот способ (иметь обжую таблицу) не не терять производительности при поиске например друзей конкретного аккаунта в примере выше? Так, как при поиске нужно проверять 2 поля

Спустя 2 минуты, 25 секунд (23.11.2010 - 21:45) Guest написал(а):
искать не друзей не трудно, просто теряеться производительность. Например если ID пользователя со значением "100", тогда нужно проверять два поля в таблице на наличие значения 100, а не одно. Повышается время исполнения запроса в 2 раза

Спустя 11 минут, 37 секунд (23.11.2010 - 21:56) waldicom написал(а):
Цитата (Guest @ 23.11.2010 - 20:45)
искать не друзей не трудно, просто теряеться производительность. Например если ID пользователя со значением "100", тогда нужно проверять два поля в таблице на наличие значения 100, а не одно. Повышается время исполнения запроса в 2 раза

Т.е. если у пользователя id=100 есть 248 друзей, то и производительность уменьшается в 248 раз?

Как у Вас сейчас сделана таблица, где просто хранятся все зарегенные пользователи?

Спустя 23 минуты, 21 секунда (23.11.2010 - 22:20) maximko написал(а):
Цитата (waldicom @ 23.11.2010 - 18:56)
Т.е. если у пользователя id=100 есть 248 друзей, то и производительность уменьшается в 248 раз?

Как у Вас сейчас сделана таблица, где просто хранятся все зарегенные пользователи?

tblUsers:
ID
FirstNAme
SecondName
NICK
MainPhoto
Info
Albums
Friends - int
Wall - int
Messages - int

Спустя 7 минут, 45 секунд (23.11.2010 - 22:27) maximko написал(а):
я вот не знаю, может все-таки создавать для каждого юзера отдельнуб таблицу друзей, стену и т.д.?

Спустя 1 час, 1 минута, 12 секунд (23.11.2010 - 23:29) tomash написал(а):
храните список друзей строкой или сериализованой строкой

user_id | friends_list

Спустя 5 минут, 52 секунды (23.11.2010 - 23:34) waldicom написал(а):
Цитата (tomash @ 23.11.2010 - 22:29)
храните список друзей строкой или сериализованой строкой

user_id | friends_list

И поимейте кучу проблем при поиске, вставке, удалении и редактировании

Спустя 7 минут, 49 секунд (23.11.2010 - 23:42) tomash написал(а):
Задача стояла упростить поиск всех друзей. Все равно одной таблицей не обойдеться.
Я бы еще добавил бы таблицу
id_user|id_friend - c составным ключом

Спустя 15 минут, 51 секунда (23.11.2010 - 23:58) maximko написал(а):
Цитата (waldicom @ 23.11.2010 - 20:34)
храните список друзей строкой или сериализованой строкой

user_id | friends_list

однозначно, этот способ не годится

Спустя 2 часа, 7 минут, 21 секунда (24.11.2010 - 02:05) maximko написал(а):
мне интересно, как делают сами разработчики Vkontakte

Спустя 2 минуты, 33 секунды (24.11.2010 - 02:08) tomash написал(а):
думаю они используют не реляционную модель

Спустя 15 часов, 7 минут, 25 секунд (24.11.2010 - 17:15) maximko написал(а):
а
Цитата (tomash @ 23.11.2010 - 23:08)
думаю они используют не реляционную модель

может графы?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.