Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Модель "сети контактов" 
:(
    Опции темы
GPolis
Дата 11.12.2006, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 30.11.2006

Репутация: нет
Всего: нет



Есть задача организовать "сеть контактов". Т.е. есть пользователи А, Б и В. Пользователь А знает Пользователя Б, но не знает пользователя В. Пользователь Б знает также пользователя В. Записать это можно таблицей:

Код

         А       Б        В

А        Х       1        0

Б        1       Х        1

В        0       1        Х


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

Сейчас думаю о двух вариантах:
  • В БД создать таблицу GLOBALS с записью `network`, куда поместить сериализованный двухмерный массив - копию верхнего. Т.е. при необходимости кому-то добавить кого-то в свои контакты, обновляться будет весь массив. Преимущество - меньше обращений к БД. Сомнения: как оно будет себя вести при одновременной работе многих пользователей
  • Каждому пользователю в БД завести поле `network`, куда помещать одномерный массив контактов, касающихся именно этого пользователя.

Кто-то делал что-то подобное? Возможно, есть более простое решение?
PM MAIL   Вверх
vasac
Дата 11.12.2006, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



3. Сделать отдельную таблицу с полями: user_1, user_2. Если в таблице есть запись со значениями, допустим (7,12), значит 7-й пользователь знаком с 12-м. Если нет — не знаком. Так же можно ввести условие, чтобы номер пользователя в user_1 был меньше чем в user_2, чтобы избежать возможности существования, как (7,12), так и (12,7)
PM WWW   Вверх
GPolis
Дата 11.12.2006, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 30.11.2006

Репутация: нет
Всего: нет



vasac,

Где должна храниться эта таблица и какая должна быть ее структура?

К концу дня что-то не могу ее себе представить....

Да, совсем забыл, пользователи будут прибавляться с процессом регистрации на сайте...
PM MAIL   Вверх
GPolis
Дата 12.12.2006, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 30.11.2006

Репутация: нет
Всего: нет



vasac

С утра понял идею!  smile Спасибо! Так, действительно, выглядит намного проще  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0743 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.