Ответы пользователя по тегу MySQL
  • Как составить правильный sql-запрос (выборка sql - количество записей)?

    @victimofbrainlessness
    city!

    select s.sity_ru, ifnull(a.count, 0) from city as s left join
    (select advert.sity, count (advert.sity) as count from advert group by sity ) as a
    on s.sity_in = a.sity
    Ответ написан
    Комментировать
  • Условие выборки PDO MySQL из $.ajax?

    @victimofbrainlessness
    Для начала убедитесь что конечный SQL запрос правильный
    Проверьте PDO::errorInfo после выполнения
    сто к одному виноват [start] => 50, у вас есть больше 50 записей с категорией 1?
    Ответ написан
    1 комментарий
  • Как задать привилегии модераторам?

    @victimofbrainlessness
    У "задать привилегии" есть общепринятое название - access control list (ACL).
    Есть множество алгоритмов/имплементаций ACL, в зависимости от задач. Так например можно раздавать доступ к действию (как в вашем вопросе), или к данным (построчно в таблице, во всем известном контакте можно задавать привилегии к просмотру объекта группам, отдельным пользователям, комбинации групп пользователей; или же запрещать).

    Сложности при реализации различных моделей:
    - гибкая структура данных для хранения привилегий
    - разрешение конфликтов
    - производительность
    Часто бывает что пользователь принадлежит к нескольким группам, одной группе разшен доступ, а другой - запрещен. Если привилегии хранятся в базе данных, бывает что на проверку привилегий уходит больше запросов чем на само действие/данные. К тому же кэширование привилегий не всегда возможный вариант.
    Ответ написан
    1 комментарий
  • Насколько эффективная такая схема работы и как ее улучшить?

    @victimofbrainlessness
    Вне всякого сомнения EAV штука полезная. Но стоит задуматься о целесообразности перевода обсолютно всех характеристик в EAV. На примере той же даты рождения: в EAV значения атрибутов будут либо все строковые, либо бинарные, как отследить всех тех кто родился в СССР? на лету конвертирывать данные в DATE и потом делать отбор? А как делать выборку по числовым значениям, сортировку? Все же стоит набор основных характеристик оставить в обычном строковом представлении.

    Обновление данных вообще геморой.
    1. Считать все строки совподающие по user_id (сохранить данные в сессию)
    2. Распечатать форму
    3. Построково сверить данные из сессии с данными из формы.
    3.а. новые атрибуты (нет данных в сессии/дб) агрегирывать и вставлять одним запросом
    3.б. обнуленные атрибуты агрегирывать и либо удалять, либо апдейтить в эмпти стринг по желанию
    3.в. изменные построково апдейт.

    может стоит посотреть в сторону NoSQL/schemaless?
    были посты на хабре, сфинкс вам в помощ
    Ответ написан
    Комментировать