За последние 24 часа нас посетили 34997 программистов и 1758 роботов. Сейчас ищут 786 программистов ...

Организация таблицы бд юзеров

Тема в разделе "PHP для новичков", создана пользователем siiXth, 8 май 2011.

  1. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    Не могу определиться как адекватней реализовать.
    Чтобы было понятней - приведу анологичный пример. В чём задача - не важно , важно верно сделать реализацию.
    Юзер регается на сайте и приносит с собой определённую инфу - айди других юзеров в массиве(система гость дружит с юзером и т.п - не важно). Так же с этим новозареганным могут потом подружиться другие гости.
    После регистрации юзера нужно добавить этому юзеру всех тех друзей что он добавил когда был гостем и им же добавить его.
    Вариант #1:
    По-тупому делаем много инсёртов в бд (0-200 в среднем, смотря сколько гость добавит друзей в виде уже зареганных). В этом инсёрте айди обоих юзеров для каждой пары.
    Минус : до 200 запросов на каждого юзера ? не разумно
    Вариант #2:
    Добавлять в бд нового юзера с ячейкой в бд айди|айди|айди|айди| друзей , далее explode() и искать в бд все те айди юзеров и выводить списком. так же у этого друга юзера (тоесть у всех юзеров на каждой странице) explode() и выбираем из списка юзеров.
    Минус: а хз =D

    Что посоветуете ? Может ещё варианты ?
     
  2. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    1. Юзер регистрируется один раз. Так что всего один раз нужно будет вставить 200 записей. Но потом легче и быстрей можно будет найти его друзей.
    2. Тут сэкономишь на первой регистрации, но тебе нужно будет при каждом посещении страницы этого юзера искать список его друзей, эксплодить строку и делать эти 200 запросов...
     
  3. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    да , я тупица. остановился на 1ом варианте. мне почему-то никогда не приходилось в одну таблицу сразу более одной записи пихать и потому я был не в курсе массового инсёрта который по нагрузке такой же как и одна строка =)