ФорумПрограммированиеPHP для идиотов → Голосование: many-to-many или сериализованное поле?

Голосование: many-to-many или сериализованное поле?

  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 10 января 2011 г. 21:28

    отдельно нахъ…

    есть голосования, юзвери.
    юзверь имеет право голосовать.
    как лучше запоминать, кто голосовал, и что будет быстрее работать: many-to-many или сериализованное поле?

    p.s. т.к. юзверь имеет право голосовать раз в месяц, то, следовательно, раз в месяц эти данные очищаются
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 10 января 2011 г. 21:35, спустя 7 минут 27 секунд

    таблица

    poll_id, user_id, yearmonth

    1,1,201010

    записи ну и индекс по ней производный :D

    например я бы еще сделал чо нить типа хеш поля - сумма какая нить, например crc32 от этой строки а по ней индекс и искал бы по этому хешу + остальным полям.
    Сапожник без сапог
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 10 января 2011 г. 21:48, спустя 12 минут 34 секунды

    значит мэнитумэни, ок

    например я бы еще сделал чо нить типа хеш поля - сумма какая нить, например crc32 от этой строки а по ней индекс и искал бы по этому хешу + остальным полям.

    вот в это не въехал, зачем поле?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 10 января 2011 г. 21:51, спустя 3 минуты 15 секунд

    вот в это не въехал, зачем поле?

    если у тебя будет стопитсот миллионов записей, то индекс только по этому полю позволит иметь МАЛЕНЬКИЙ индекс, который будет работать как фильтр этой громадной таблицы,, в итоге ты ищешь по нему(используется индекс) и нашедшиеся 100 записей у которых хеш совпал уже фильтруются на ура безо всяких индексов.

    зачем он нужен - индекс по 3 полям будет дохуя весить, медленно искаться
    Сапожник без сапог
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 10 января 2011 г. 22:00, спустя 9 минут 17 секунд

    въехал,
    т.е хешем делать crc32($pool_id . $yearmonth)?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 10 января 2011 г. 22:16, спустя 15 минут 35 секунд

    crc32($pool_id . $yearmonth)



    crc32($pool_id."-". $user_id."-".$yearmonth)


    я еще обычно делимитерами какими нить разбавляю.
    почему все 3 параметра? да потому что ЮЗЕР 1 РАЗ В МЕСЯЦ на 1 ОПРОС
    Сапожник без сапог
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 10 января 2011 г. 22:42, спустя 26 минут 30 секунд

    ясно, спасибо =*
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 11 января 2011 г. 1:25, спустя 2 часа 42 минуты 36 секунд

    а еще быстрее если индекс будет целочисленным
    Спустя 48 сек.
    110052130201011
    Спустя 94 сек.
    интересно в мускуле есть шестнадцатиричные поля?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 11 января 2011 г. 1:27, спустя 1 минуту 53 секунды

    а еще быстрее если индекс будет целочисленным

    спасибо КО
    Сапожник без сапог
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 11 января 2011 г. 1:47, спустя 20 минут 16 секунд

    спасибо КО

    ну может кто не знает, меня только смущает громадное число…
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 11 января 2011 г. 1:53, спустя 6 минут 7 секунд

    kostyl, с чего оно громадное то будет???? http://ru2.php.net/crc32 почитай. 32 байта блядь - инт4, где ты 16 увидел?? теоретики блядь
    Сапожник без сапог
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 11 января 2011 г. 10:31, спустя 8 часов 37 минут 44 секунды

    чё то я реально торможу… crc32 ж возвращает инт ))
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 11 января 2011 г. 11:19, спустя 48 минут 7 секунд

    kostyl, ns - njhvjp
    Спустя 9 сек.
    ты тормоз
    Сапожник без сапог
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 11 января 2011 г. 20:38, спустя 9 часов 18 минут 53 секунды

    есть вероятность коллизий, поэтому если очень много записей, то может кто то не сможет проголосовать или проголосует дважды
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 11 января 2011 г. 22:33, спустя 1 час 55 минут 33 секунды


    есть вероятность коллизий, поэтому если очень много записей, то может кто то не сможет проголосовать или проголосует дважды
    ты по ходу не читаешь
    в итоге ты ищешь по нему(используется индекс) и нашедшиеся 100 записей у которых хеш совпал уже фильтруются на ура безо всяких индексов

Пожалуйста, авторизуйтесь, чтобы написать комментарий!