• Как настроить автоинкрементируемый столбец, чтобы при добавлении новых строк не появлялись пропуски?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Ок, представим что вы настроили подобный механизм (хотя очевидно что это сделано не просто так), и теперь у вас есть предположим пользователи с номерами 10 и 11. У каждого из них есть некоторые данные, которые привязаны к этому пользователю по id. Теперь мы удаляем пользователя под номером 10, а потом создаем нового, который займет это место. Теперь владельцем всех данных удаленного пользователя будет новый пользователь, который как бы не должен иметь к ним доступа.

    Это банальный и самый простой пример, больше для понимания... Уникальный идентификатор он на то и уникальный, что более не будет повторяться и гарантирует эту неповторяемость на уровне механизма работы бд.
    Ответ написан
    1 комментарий
  • Как оптимизировать выполнение тяжелых запросов?

    Melkij
    @Melkij
    PostgreSQL DBA
    Можно ли сделать так, чтобы запрос выполнялся дольше, но меньше загружал CPU -- может есть какие-то способы понизить приоритетность выполнения?

    Обычный nice. Процессная же модель, никаких проблем понизить приоритет конкретного процесса средствами самой ОС.

    Есть ли встроенные механизмы кэшированая, которым можно сказать, что для запроса Х нужно отдавать данные из кэша при вызове его чаще чем N минут\часов?

    Нет, кеша запросов нет. И не будет.

    ситуация когда с БД нужно собирать некоторую статистику и при этом сделать так, чтобы система не сильно тормозила

    Не смешивать OLAP и OLTP вообще. Если база важная, то у неё будет hot standby. Там статистику и считать.
    Ответ написан
    Комментировать
  • Техническое собеседование Python?

    @dmshar
    Хочу вас расстроить. Человека не умеющего сначала искать ответ самостоятельно - хотя-бы на том-же ресурсе, на котором он задает вопрос, хотя-бы тех ответов, которые дали менее чем за две недели до вас - на работу нынче не берут. Уж больно много лениво-желающих, надо отобрать тех, кто имеет хоть зачатки самостоятельного мышления.
    Вот вам ответ. Изучайте:
    Как подготовиться по алгоритмам к собеседованию(junior)?
    Ответ написан
    Комментировать
  • Как сделать умножение в Select?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT CASE valuta WHEN 1 THEN price
                       WHEN 0 THEN price * 73
                       ELSE NULL 
                       END AS price_in_rub, 
           ...
    FROM ...
    WHERE ...
    Ответ написан
    1 комментарий
  • Как правильно делать JOIN таблиц?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Есть ли разница джоинов этих двух строк, с точки зрения нагрузки на БД?

    Оба запроса - INNER JOIN. Если не используется STRAIGHT_JOIN, то сервер гарантированно построит для обоих запросов один и тот же план выполнения.

    Более того, если Вы почитаете внимательно, как именно сервер выполняет и оптимизирует запросы, то узнаете, что сервер фактически оба этих запроса приводит к картезианскому произведению с отбором. Вернее, препроцессинг выглядит так, словно сервер выполняет такое приведение.
    Ответ написан
    Комментировать
  • Как комбинировать работу с протоколами websocket и http?

    @kr_ilya
    Если коротко
    http сервер запускаешь на одном порту.
    socket.io сервер запускаешь на другом порту.
    Потом через nginx например, проксируешь их на разные адреса

    Например
    server.js

    //http
    const express = require('express');
    const server = require('http')
    var app = express();
    var server = server.Server(app);
    server.listen(3000);
    
    //socket
    Socket.io = require('socket.io')(3001, { path: '/', });


    Секция server конфига nginx

    # Для стандартных пост гет запросов (запросы, естественно, будут на site/api/)
    location /api/ {
        expires $expires;
    
        proxy_redirect                      off;
        proxy_set_header Host               $host;
        proxy_set_header X-Real-IP          $remote_addr;
        proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto  $scheme;
        proxy_read_timeout          30m;
        proxy_connect_timeout       30m;
        send_timeout                30m;
        proxy_pass                          http://127.0.0.1:3000/; # set the adress of the Node.js instance here
    }
    
    # Для сокетов
    location /socket/ {
    
        expires $expires;
    
        proxy_redirect                      off;
        proxy_set_header Host               $host;
        proxy_set_header X-Real-IP          $remote_addr;
        proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto  $scheme;
        proxy_set_header                    Upgrade $http_upgrade; #для сокетов
        proxy_set_header                    Connection "upgrade"; #для сокетов
        proxy_http_version 1.1;
        proxy_read_timeout          30m;
        proxy_connect_timeout       30m;
        send_timeout                30m;
        proxy_pass                          http://127.0.0.1:3001; # set the adress of the Node.js instance here
        
    
        
        # proxy_ssl_server_name on;
    }
    Ответ написан
    Комментировать
  • Как удалить содержимое БД Mysql?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Самое простое - сделать бэкап только структуры, без данных (mysqldump --no-data, https://dev.mysql.com/doc/refman/8.0/en/mysqldump....), удалить БД, восстановить. Само собой, не забыть забэкапить процедуры/триггеры/прочее.
    Ответ написан
    Комментировать
  • Почему мой генератор не работает?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    str_replace — Заменяет все вхождения строки поиска на строку замены

    легче всего переделать так.
    по всей длине маски
    взять текущий символ.
    если он Х то к результату добавить случайный символ иначе текущий
    Ответ написан
    3 комментария
  • Как засунуть переменные из include файла в класс?

    @kot999
    Backend software engineer
    тут изначально очень не правильный подход. не нужно делать "дефолтную конфигурацию" через глобальные переменные.
    class DbConnection
    {
        private string $userName;
        private string $password;
        private string $dbname;
    
        public function __construct(string $userName, string $password, string $dbName)
        {
            $this->userName = $userName;
            $this->password = $password;
            $this->dbname = $dbName;
        }
    }
    
    
    class AuthController
    {
        private DbConnection $dbConnection;
    
        public function __construct(DbConnection $connection)
        {
            $this->dbConnection = $connection;
        }
    }
    
    $dbSettings = include('dbconfig.php');
    $connection = new DbConnection($dbSettings['login'], $dbSettings['password'], $dbSettings['dbName'] );
    $controller = new AuthController($connection);


    а в файле dbconfig.php

    return [
    'login'=>'myLogin',
    'password'=>'myPassword',
    'dbName'=>'myDbName'
    ];
    Ответ написан
    3 комментария
  • Ошибка с foreign key?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Ну ловите его и обрабатывайте как угодно. Через try...catch.
    Ответ написан
    Комментировать
  • Есть ли кто сможет проверить php код на ошибки?

    DevMan
    @DevMan
    Д - дебаг. читайте логи/включите вывод ошибок.

    и дело не в нежелании помочь, дело в невозможности учесть ваше окружение и скомпилить код в уме. разве что гадать.
    Ответ написан
    1 комментарий
  • Почему бы вместо абстрактного класса не делать обычный, но с пустыми методами?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Абстрактный класс нужен для того, чтобы не было возможности создавать его экземпляры, а только его классов-наследников.
    Простой пример. Пусть у нас будет абстрактный класс Фигура с методом Нарисовать; и есть его классы-наследники Круг и Квадрат.
    Так вот. Экземпляры классов Круг и Квадрат мы имеем право создавать, а вот экземпляр Фигуры создавать не имеем права, т.к. это не имеет физического смысла. И уж тем более мы никак не можем реализовать метод Нарисовать у Фигуры. Поэтому и сделан такой запрет на абстрактные классы.
    Это необходимо, чтобы код был надёжным и защищённым от кривых рук других программистов
    Ответ написан
    5 комментариев
  • Как сделать запись в sqlite3 целым числом, а не 1е+1?

    Насколько больше число? С числами лучше конкретнее.
    Максимальное число, которое можно сохранить в integer sqlite (8 байт) - 9,223,372,036,854,775,807.
    Если ваши числа больше, то полагаю, придется хранить это число как строку или блоб.
    Ответ написан
    1 комментарий
  • Почему в БД не видно отправленные данные?

    @Kostik_1993
    Web Developer
    Я новичок в laravel
    ------------------------
    Теперь проблема в том что вместо отправленных данных в phpMyAdmin в полях таблицы стоят не отправленные данные а переменные $title и $text <---вот прям вот так и написано
    Сюдя по всему вы новичок не только в Laravel, но и в PHP тоже. А также и программировании в целом

    ['$title', '$text'] - ответ прячется тут. Для какой цели вы переменные в кавычки обернули?
    Ответ написан
    2 комментария
  • Как исправить task(*args, **kwargs) TypeError: 'str' object is not callable?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    def name(message): #получаем имя
            global name
            name = message.text

    Вы объявили имя name и связали его с функцией.
    Затем вы объявляете это имя глобальным и связываете с ним строку. Теперь name - это просто str тип.
    А к строке нельзя обращаться, как к функции - её нельзя вызывать. Об этом вам и говорит интерпретатор - str is not callable.
    Ответ написан
    4 комментария
  • Как округлять с отрицательной точностью?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    my_round(123,-2) = 100.

    Точность говорит, что все цифры после этого индекса должны быть 0. А предыдущая, может увеличится на 1, в зависимости от правил округления.
    Ответ написан
    Комментировать
  • В чем отличия Windows Server 2019 и 20H2?

    Как уже было сказано выше (но разве можно считать хорошим ответом тот, в котором спрашивающему говорят "гуглите"?), Windows Server 2019 и 20H2 (а сейчас уже 21H2) - это два разных продукта.

    Windows Server 2019 на момент написания этого ответа - продукт LTSC. Он не содержит новых функций, которые могли бы появляться между большими релизами серверной ОС Microsoft, но зато гарантированно долго поддерживается, что позволяет полагаться на этот дистрибьютив системам, которые не частно обновляются или меняются.

    Windows server (XXHX) - это SAC продукт, обновляется каждые пол года или реже, чаще получает "последние доработки", долгосрочно не поддерживается, то есть используя его можно быстрее получить новые фичи (если они нужны и вы о них знаете), но обновлять сам дистрибтьютив для гарантии наличия патчей и обновлений придется чаще (целить надо на "раз в пол года").
    Ответ написан
    Комментировать
  • Фильтрация массива на совпадения?

    WblCHA
    @WblCHA
    const groups = [
        ["british", "classic-rock"],
        ["pop"],
        ["rock", "classic-rock"],
      ];
      const filterKeys = ["british", "pop"];
      
      groups.filter((g) => filterKeys.some((k) => g.includes(k)))
    Ответ написан
    Комментировать
  • Как производить валидацию интернациональных номеров телефона на backend'е?

    vabka
    @vabka
    Токсичный шарпист
    Посмотри либы
    phone
    libphonenumber-js
    google-libphonenumber
    Ответ написан
    Комментировать