Ответы пользователя по тегу MySQL
  • Как лучше всего хранить несколько пользователей с общими свойствами?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Общее - в одной таблице, разное - в отдельных. Если user_type_2 и user_type_3 - это одно и то же с точки зрения бизнес логики - в одной, в противном случае в разных. Требования скорее всего поменяются и не один раз по этому дешевле и проще перестраховаться.
    Ответ написан
    Комментировать
  • Курица или яйцо? Как создать запись в одной из двух таблиц, завязанных друг на друга внешними ключами?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Я правильно понял, зачем такое может понадобится - это связка MANY-MANY?
    Если да - выбросьте двойную связку и желательно так не делайте. Вместо нее используйте дополнительную таблицу для связки. Например: есть 2 таблицы users[id, name] И groups[id, name]. Для них создайте еще одну groupsHasUsers[groupId, userId].
    Ответ написан
    Комментировать
  • Можно ли модифицировать БД SQL скриптом или нужно править "ручками"?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Я так понимаю вы ищите команду ALTER TABLE
    Ответ написан
    Комментировать
  • Настройка хостинга?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Вопрос из серии "где клавиша 'сделать все п**дато' ?". Вы для начала ответьте хотя бы себе на вопрос: "что вы собрались делать?"))

    Хостинг понятие очень растяжимое:
    * Это может быть хостинг на базе ISP-like систем.
    * Это может быть обычный Linux + Apache2 + MySQL + PHP
    * Это может быть просто CDN для отдачи статики.
    * Это может быть RoR хостинг.
    * Это может быть просто хостинг БД, например CouchDB, или MongoDB.
    * Это может быть NodeJS хостинг.
    * Это может быть хостинг виртуальных машин, или контейнеров.
    И таких "Это может быть - бессчетное множество"

    На счет биллинга - ситуация такая же.

    Но, судя по формулировке вопроса - Oioraen прав, и вам действительно стоит обратится к специалисту.
    Ответ написан
    1 комментарий
  • Как вести разработку уже рабочего проекта (в продакшене)?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    1. Vagrant, или docker с системой максимально похожей на production сервер. Разработку ведем там.
    2. Если никакая vcs не используется - пи"№;ц конечно, но быстро подключайте, иначе бида обеспечена. Рекомендую git + git-flow.
    3. Правки в БД ТОЛЬКО на основе миграций, при этом создавайте как up, так и down.
    4. Возьмите готовую систему для диплоя, либо напишите свой скрипт для этого. Цель в том, что бы минимизировать человеческий фактор при обновлении продакшна на столько, на сколько это возможно.
    5. Все, что находится в /vendor - обязательно должно быть заигнорировано в vcs, composer.json И composer.lock (спс OnYourLips) должен ссылаться на фиксированные версии пакетов.
    6. Код ОЧЕНЬ-ОЧЕНЬ-ОЧЕНЬ желательно покрыть тестами. Самый кульный вариант - запуск тестов после push изменений в главный репозиторий. Для этого можно использовать связку gitlab + gitlab-ci.
    7. На счет доменов - в чем проблема то? Вынесите домен в конфигурацию, и создайте конфиги для локального, тестового и боевого окружений.
    8. На счет записей в БД: да, они обязаны отличаться. По хорошему на проде руками в принципе можно только смотреть, а записывать нельзя. Для тестовой БД - пишите фикстуры.
    9. сразу подумайте на счет логов: если их over-дофига, имеет смысл использовать системы типа logstash, или sentry.
    Ответ написан
    2 комментария
  • Как и где лучше хранить код на некоторое время?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    sessionStorage, при закрытии страницы данные же должны пропадать?
    Ответ написан
  • Кто может помочь освоить web-разработку c помощью php, mysql?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Вы зря пытаетесь понять ВСЕ-и-СРАЗУ. Ясен хрен, что в голове каша будет. Начните с книги на 800+ страниц по php, прочитайте, попытайтесь сделать какой-ни-какой сайт. Возгордитесь собой)). Прочитайте Макконнелла "Идеальный код", гордость после первого сайта должна пройти на этот момент. Изучите какой-нить фремворк, например Symphony2, восхититесь, сделайте несколько сайтов. Поздравляю, где-то в этом месте вы стали юниором. Изучите кучу штук, типа redis, memcached, posgresql, bash, git, rabbintMQ,.. и сделайте с ними несколько проектов. Скорей всего вы на этом этапе станете мидлом и будете считать symphony единственным норм фреймворком. По работайте с высоко нагруженными проектами, увидите, что многие казалось бы правильные подходы для HL в принципе нельзя применять потому как в ограничения железа упретесь, по работайте на нескольких таких проектах. Где-то здесь вы перерастете в синьйора.

    То, что вы поверили, что "курсы меня сделают кулхацкером и я буду грести баблище лопатой" - это просто маркетинг)). Единственные курсы, которые реально чему-то учат - это курсы конкретной компании по конкретно их продукции с конкретно ихними сертификатами, которые признаются в мире, например cisco.

    Вы не старайтесь найти кого-то, кто будет сидеть с вами и учить. Например вы будете делать сайты визитки, зашибись но знаний это не даст особо. Пока вы не научитесь УЧИТЬСЯ самостоятельно - путь в программирование (особенно в web) вам закрыт.
    Ответ написан
    8 комментариев
  • Самый эффективный способ не вставки дублей в MySQL?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Попробуйте INSERT IGNORE, вот неплохой тред об этом
    Ответ написан
  • Как разнести nginx, apache, mysql и прочее на разные сервера?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Судя по связке используется proxy nginx->apache2

    Фактически в настройках nginx вам будет необходимо прописать верный ip сервера с apache2 + на сервере с apache2 обязательно должен быть открыт и доступен порт, на который вы проксируете с сервера с nginx.

    Статику лучше будет размещать на сервере с nginx, если проект целостный - диплой нужно будет делать И на сервер с nginx и на сервер с apache2, но на nginx скрипты должны быть отключены.

    На счет mysql не понимаю в чем у вас проблема. Сервер и порт с mysql должен быть доступен для сервера с apache2. Конкретно подключение к mysql указываете в настройках ваших скриптов.
    Ответ написан
    3 комментария
  • Как правильно реализовать множественное обновление данных mysql?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Можно UPDATE + JOIN использовать.
    Ответ написан
    Комментировать
  • Почему в Yii не работает $criteria->order?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Но самое главное как сделать, чтобы эта критерия заработала?

    В order дописываются ваши поля фильтрации и будут добавлены после инструкции ORDER BY в результирующем запросе, как есть. `t` - это алиас основной таблицы, относительно которой делается запрос.

    То, что вам нужно (sortField - поле, по которому необходима сортировка, в принципе можно использовать и множественную фильтрацию):
    $criteria->order = '`t`.`sortFeild` ASC';
    Ответ написан
    2 комментария
  • Какие типы данных выбрать для id, ip и еще нескольких полей в mysql?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Если хост - только ip. Можете разделить на 2 unsigned int поля: ip, port
    email - лучше varchar
    Ответ написан
  • Как лучше с помощью схемы RBAC организовать блокировки пользователей на сайте?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    RBAC обычно предполагает схему: все запрещено, разрешено избранное. Посему "баном" можно считать не назначенные права.

    В более общем смысле бан - вписывается в RBAC только в случае, если у каждого права указывается время действия (в вашем случае в таблице roles_users), пусть и необязательное.

    Вообще говоря лучше систему бана вынести отдельно, и не связывать с RBAC.
    Ответ написан
    2 комментария
  • Redis стоит ли переходить с mysql?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Вы - PM (Project Manager), ваша задача - управлять человеческими ресурсами, НЕ лезьте в разработку.
    Задача программиста, согласно вами описанными правилами - реализовывать функционал, однако инструменты для этого он должен выбирать самостоятельно, согласно ТЗ.

    То, что вы указали несколько цифр - это архитектурные требования и они ВНЕ вашей компетенции.

    Вы указали требования на запись/чтение, а что на счет целостности, себестоимости, сложности внедрения и поддержки?

    Redis - это key-value хранилище (чаще всего используется как кэш, и pub/sub роутер), MySQL - это реляционна БД. Это как сравнивать мотоцикл и фуру, они предназначены для разных целей.
    Ответ написан
    Комментировать
  • Как сделать отдельную страницу для каждого профиля?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Я хочу что-бы после регистрации пользователя автоматически создавалась его страничка (ник и т.д) с адресом site.ru/profile=$username

    Боюсь вы не совсем понимаете, что вы хотите. Обычно при заходе на site.ru/profile=$username происходит выполнение управляющего php скрипта (index.php, или какого-либо другого, зависит от настроек ЧПУ web-сервера). Тот в свою очередь на входе получит $_GET == ['profile' = $username] и обязан сгенерировать HTML ответ.

    Можете ли вы скинуть нужные гайды или сами написать как это сделать?

    Боюсь, это самые азы php, азовее просто некуда. Рекомендую прочитать Котеров "PHP 5 в подлиннике"
    Ответ написан
    Комментировать
  • MySQL: Выгрузить буквенные заказы. Есть ли элегантное решение?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Если буква выступает в роли модификатора - лучше вынести ее из номера заказа, либо хотя бы продублировать в еще одной колонке. Регулярки - конечно штука хорошая, но тяжелая.
    Ответ написан
  • Какой запрос отработает быстрее "=" или LIKE?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    LIKE без % - бессмысленная стрельба минометом по воробьям.

    Быстрее выполняется =, но он не покрывает функциональность, которую реализует LIKE.
    Ответ написан
    Комментировать
  • Как повысить знания в области архитектуры веб проектов?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Эффективней всего: решать конкретные рабочие задачи.

    Те же VCS выбираются под проект. Бывают ситуации, когда svn - вполне оправдан, по сравнению с git.
    CI - зависит от того, что вы требуете от CI)) Это может быть Jenkins, TeamCity, Bamboo, мне лично нравится связка gitlab+gitlab-ci.
    Выбор тестового движка тоже зависит от профита, который он может дать именно на вашем проекте.
    Принцип разделения вашего проекта на составляющие (вплоть до под проектов) зависит характера вашего проекта.
    И много-много других штук.

    Веду к тому, что нужна практика, практика и еще раз практика
    Ответ написан
    Комментировать