|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.10.2012, 18:58 | #1 |
Пользователь
Регистрация: 23.04.2012
Сообщений: 43
|
добавление и удаление друзей на php
Не так давно начал изучать php. И решил написать небольшую соц.сеть для тренировки.Вот столкнулся с такой проблемой, как добавление друзей и вывод из на экран.Хотя со вторым я практически разобрался.
Так вот ближе к делу. Не могу понять как организовать таблицу friends чтобы делать там отметки о друзьях.Я читал что нужно сделать два поля для айдишников и поля для статуса и еще я нашел что просто в таблице пользователей сделали поле frends и туда через пробел заносили айдишники друзей.Хотелось бы услышать мнение о каждом из вариантов ну и если есть возможность посмотреть на примере.Спасибо! |
03.10.2012, 23:39 | #2 |
Форумчанин
Регистрация: 03.12.2010
Сообщений: 334
|
Оба способа имеют право на жизнь, надо смотреть как связка друзей происходить будет - если я добавил друга, а он меня нет, подумай как об этом сообщить мне, другу, посетителю который зашел на мою страничку, посетителю который зашел на страницу друга. Сколько надо сделать запросов к БД в каждом из случаев и сколько нужно будет прошерстить строк в БД, когда у тебя будет например 10000 пользователей.
|
04.10.2012, 00:39 | #3 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 679
|
Имеет право на жизнь только первый способ !!
Таблица friends(user_id, friend_id) Приглашения пишете в отдельную таблицу invites. Когда подтверждают дружбу, делает 2 записи в таблицу friends (для каждого пользователя) |
04.10.2012, 07:57 | #4 |
Форумчанин
Регистрация: 03.12.2010
Сообщений: 334
|
Ну зачем же так категорично - только первый?
Если он не собирается делать какие-либо связки типа "друзья друзей Александра Друзя", а нужно только получить список всех друзей конкретного человека и на этом функциональность ограничивается, то при числе пользователей скажем в 10000: Код:
Код:
можно объединить оба способа и получим отдельную таблицу friends(user_id, friend_array), где friend_array - сериализованный массив с айдишками друзей. Так что все зависит от конкретных целей и задач. |
04.10.2012, 11:01 | #5 |
Форумчанин
Регистрация: 08.07.2010
Сообщений: 679
|
Даже комментировать не буду второй способ
1. Читайте про нормализацию данных 2. Про индексирование. 3. Удобство работы (например удаление друзей и построение связей между многими друзьями ... друзья друзей и пр.). Я даже не говорю про всякие join 4. А если нужно еще добавить категорию друзей (одноклассники, коллеги) и прочие вещи? Одним словом не предлагайте всякую ерунда, проиндексированная таблица с 2 полями типа int выдержит хоть миллион, хоть миллиард записей (проверено лично на живых проектах). Одним словом второй способ никогда не выиграет в производительности, ни при 2 юзерах, ни при 1000000 Последний раз редактировалось Cronos20; 04.10.2012 в 11:12. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Добавление друзей в Моем мире (mail.ru) | Robin_ | Работа с сетью в Delphi | 3 | 06.04.2012 11:45 |
Добавление/Удаление | CrazyN00b | Помощь студентам | 0 | 28.11.2010 17:38 |
Удаление/добавление на С++. | Serror | Фриланс | 6 | 21.10.2009 09:35 |
Удаление/добавление. | Serror | Общие вопросы C/C++ | 3 | 19.10.2009 09:41 |
Удаление и добавление строки. | Serror | Общие вопросы C/C++ | 6 | 11.10.2009 18:59 |