• Как лучше хранить настройки пользователей в базе данных?

    rubyrabbit
    @rubyrabbit
    Если говорить про MySQL, то в PunBB, например, как наиболее быстрый вариант выбрали хранение настроек прямо в таблице users: каждой настройке свой столбец.
    Если вы часто меняете перечень настроек, то проще вынести их в отдельную таблицу, где ключом будет user_id, а в столбцах будут сами настройки.
    Тогда можно одним запросом получить данные сразу в готовом виде, экономить тут смысла особо нет, зато можно делать сложные запросы в случае чего.
    А в общем конечно лучше использовать NoSQL для этого.
    Ответ написан
    Комментировать
  • Как лучше хранить настройки пользователей в базе данных?

    Wott
    @Wott
    Вы неправильно ставите вопрос. как хранить — без разницы, данные от этого не испортятся. Вопрос в том что вы будете с ними делать. И тут есть варианты:

    Если планируется делать выборки по юзерам по свойствам, например принадлежность к группе, то такие свойства должны быть в явном виде. Нормализовать или нет — решайте сами.

    Если же опции используются скопом, например при рендере страницы для него и больше никак, то есть смысл упаковать массив в виде json/xml.

    Мне лично нравиться вариант Wordpress, где есть отдельная таблица для именованных опций ( юзера, поста и что там еще ) и в ней храниться либо отдельное значение или массив в виде отдельных строк, но с одним именем, по которым можно делать выборку или сериализованный массив — по желанию. Точнее как удобно их использовать. И при желании все варианты можно миксовать.
    Ответ написан
    Комментировать
  • Как отправить письмо по imap?

    IMAP не отправляет письма. Почтовые клиенты отправляют письма по SMTP submission, по imap можно положить письмо в папку отправленных.
    Ответ написан
    Комментировать
  • Домен третьего уровня на другом сервере и хостинге, с другим ip. Можно ли настроить?

    SlavikF
    @SlavikF
    Если у вас свои name servers, то я не уверен.
    А вот если кто-то (Google, Yandex, GoDaddy) для вас управляет DNS, то надо просто у него добавить A или CNAME запись.
    У меня домен зарегестрирован у Гугла и там вот так:

    0d249b50301e4cf2a6cc6b02267b5d6a.png

    @ - это IP для моего домена (второго уровня) - slavikf.com
    * - это всех поддоменов (третий уровень) - типа any-many.slavikf.com
    а потом, IP для отдлельных хостов, например artur.slavikf.com, backup.slavikf.com и т.д.

    Кстати, можно пользоваться и CNAME, не только A. CNAME - это типа форвардинга для IP, но лучше гуглите для более правильного определения. В некоторых случаях это более удобней.
    Ответ написан
    Комментировать
  • Как настроить php intellisense для Visual Studio Code?

    ganjour
    @ganjour
    change returns success
    В настройках необходимо указать путь к исполняемому файлу PHP 7.xx и отключить стандартный PHP IntelliSense. Вот этих трех строк достаточно для настройки плагина:
    "php.executablePath": "D:/YandexDisk/OpenServer/modules/php/PHP-7/php.exe",
    "php.validate.executablePath": "D:/YandexDisk/OpenServer/modules/php/PHP-7/php.exe",
    "php.suggest.basic": false,

    Пути к php.exe замените на свои и не забудьте сохранить файл настроек..
    Ответ написан
    Комментировать
  • Обход кэширования js/css

    @Serator
    А не лучше ли выкинуть из головы все эти анахронизмы (аль даже маразмы), описанные выше, и использовать то, что собственно и было реализовано под вашу задачу, то бишь ETag. Подробнее почитаете в википедии, аль где-нибудь еще (информации достаточно много).

    + в том, что все происходит автоматически и при этом файл кешируется.

    Пример использования для ".htaccess":

    # Настраиваем ETag на время последнего изменения файла и его размер
    FileETag MTime Size
    Ответ написан
    6 комментариев