Задать вопрос
  • Что нужно исправить, чтобы sql код заработал?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А что именно вам непонятно?
    #1054 - Неизвестный столбец 'o.product_id' в 'on clause'
    В таблице Orders у вас нет поля product_id, да и вообще нет никакой связи между Orders и Products.
    Ответ написан
    Комментировать
  • Как снять блокировку компьютера?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Если винда поставлена недавно - снести нахрен и поставить заново.
    Если винда давняя и имеет ценность - создать флэшку с Hiren, загрузиться, запустить редактор базы пользователей, сбить пароль админа если надо, создать нового админа если надо.
    И больше не заниматься фигней.
    Ответ написан
    Комментировать
  • Как снять блокировку компьютера?

    @apppostol
    Загрузиться с флешки типа AdminPE или Strelec, и используя специальный софт, создать нового пользователя с правами администратора. Можно еще KonBoot по идее использовать.
    Ответ написан
    2 комментария
  • Ошибка unterminated string literal?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Кавычек закрывающих нет.
    Ответ написан
    Комментировать
  • Как работают интернетныйе оптоволоконные коммутаторы на столбах?

    @dronmaxman
    VoIP Administrator
    И как по одному лучу света можно связываться с сотнями роутерами?

    Почитай про GPON

    Как из нескольких оптоволокон от разных домов делается снова один, который потом идёт в такую же коробочку и заходит в неё вместе с другими оптоволокнами от следующих домов?

    Там не одно волокно. Почитай про GPON.
    Ответ написан
    Комментировать
  • Как работают интернетныйе оптоволоконные коммутаторы на столбах?

    hint000
    @hint000
    у админа три руки
    И как по одному лучу света можно связываться с сотнями роутерами?
    Этот вопрос относится не только к оптике, но и к любой другой среде передачи (медные провода, радиоэфир). Начните знакомство с этого: https://ru.wikipedia.org/wiki/Мультиплексирование
    Продолжить можно этим: https://ru.wikipedia.org/wiki/Коммутация_IP-пакетов
    https://ru.wikipedia.org/wiki/Маршрутизация
    Ответ написан
    Комментировать
  • Как работают интернетныйе оптоволоконные коммутаторы на столбах?

    @Desert-Eagle
    Новичок во всем
    Это не коммутаторы, это кросс, а видите вы скорее всего оптически муфры, где и идет распайка оптики по жилам.
    Ответ написан
    Комментировать
  • Почему в бд не вводится символ "\"?

    @maksam07
    попробуй:
    $folder = addslashes("\\assets\\img\\product\\");

    Но лучше что-то вроде:
    $stmt = $mysql->prepare("INSERT INTO `catalog`(`Name_Product`, `Operator`, `Internet`, `Minuts`, `Sms`, `Price_tarif`, `Price_sim`, `image`) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
    $stmt->bind_param("ssssssss", $Name_Product, $Operator, $Internet, $Minuts, $Sms, $Price_tarif, $Price_sim, $photoname);
    $stmt->execute();
    Ответ написан
    3 комментария
  • Есть ли готовые решения, для отмены действий на сайте, как бы SQL-undo?

    @alexalexes
    Проектируйте структуру базы данных так, чтобы сохранялась полная история действий над каждым классом данных, словно сохраняете лог для спец. служб.
    Api пользователя не должно использовать DELETE, только INSERT, и UPDATE только для выставления даты удаления записи, выставления метки последней актуальной записи истории. Операцию DELETE имеет право использовать только служебный метод для зачистки истории, когда устаревшие записи становятся неактуальными ни для одного актора системы.
    Ответ написан
    Комментировать
  • Как правильно использовать REPLACE при LEFT JOIN в MySQL?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для MySQL 8.0 и выше:
    WITH RECURSIVE `subs` (`name`, `value`, `order`) AS (
      SELECT CONCAT('{{> ', `p`.`name`, '}}'), `p`.`value`, ROW_NUMBER() OVER ()
        FROM `templates` AS `t`
        JOIN `parts` AS `p`
          ON `t`.`value` LIKE CONCAT('%{{> ', `p`.`name`, '}}%')
        WHERE `t`.`id` = 1
    ),
    `result` (`value`, `order`) AS (
      SELECT `value`, 0
        FROM `templates`
        WHERE `id` = 1
      UNION SELECT REPLACE(`r`.`value`, `s`.`name`, `s`.`value`), `s`.`order`
        FROM `result` AS `r`
        JOIN `subs` AS `s`
          ON `s`.`order` = `r`.`order` + 1
    )
    SELECT `value`
      FROM `result`
      ORDER BY `order` DESC
      LIMIT 1

    Для старых версий даже пробовать не буду, мне столько не выпить.
    Ответ написан
    3 комментария
  • Как удалить записи с базы используя limit?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    PostgreSQL?
    DELETE FROM order_clients
      WHERE ctid IN (
        SELECT DISTINCT o.ctid 
          FROM order_clients AS o
          JOIN order_clients AS t
            ON t.client_id = o.client_id AND t.order_id = o.order_id
              AND t.linked_at < o.linked_at
          LIMIT 1000
      );
    Ответ написан
    3 комментария
  • Как и чем лучше делать бэкап баз 1c?

    @Dementor
    программист, архитектор, аналитик
    кто чем и как делает бекап баз 1с (клиент-серверная архитектура)?

    Делал только стандартными средствами СУБД.

    Когда полностью админил одну базу на PostgreSQL, то у меня был в кроне скрипт, который регулярно выгружал бэкапы утилитой pg_dump. Админы моих баз на MsSQL обычно делали ночью полные бекапы и в течении дня по расписанию сохраняли разностные.
    Ответ написан
    Комментировать
  • Как добавить отношения "многие-ко-многим" между таблицами из разных баз данных?

    Если вы разделяете проект на микросервисы, но связываете при этом их данные, то вы просто делаете распределённый монолит. А когда вы ещё и базу разрываете на два куска, при этом пытаясь сохранить между ними традиционные связи, как внутри одной базы данных, то вы:
    1. Не решаете абсолютно ни одной из задач микросервисов, т к. сервисы остаются жёстко связанными. Всё можно было бы решить просто при помощи "Clean architecture", DDD и т.д.
    2. Вы добавляете себе невероятное количество головной боли, связанной с самой микросервисной архитектурой, но и плюс все прелести из п.1.
    3. И тогда нафига козе баян?

    - Микросервисы должны иметь полностью независимые базы данных
    - Все взаимодействия должны осуществляться исключительно по API (это мой ответ на ваш вопрос). Как только вы связываете схемы данных, вы теряете весь смысл микросервисов.
    - Вы должны обязательно реализовать распределенные транзакции. Вы должны сами писать код для таких транзакций. А вспомните, как приятно и просто делать транзакции в монолите с одной базой данных.
    - Взаимодействие между микросервисами должно осуществляться на базе строжайших контрактов, которые можно менять только после обсуждения со всеми людьми, разрабатывающими данные микросервисы. Вам неплохо было бы выдумать или позаимствовать какой-то фреймворк, где четко будут описаны общие и частные принципы общения микросервисов.
    - Вы должны обеспечить мониторинг всего и вся, оповещение об отказах и деградации микросервисов
    - Вы должны обеспечить распределенное логирование, чтобы уметь отслеживать даже, например, простые запросы между логами из нескольких независимых систем.
    - И т.д. и т.п.

    Оно вам надо?
    Ответ написан
    Комментировать
  • Как добавить отношения "многие-ко-многим" между таблицами из разных баз данных?

    @rPman
    Если это сделано специально то не надо так делать.

    Одновременная работа с двумя базами данных лишает пользователя встроенного механизма транзакций и заставляет самому следить за согласованностью данных.

    Если прямо очень надо, то для начала нужно понять, какая сторона будет 'главной', кто будет выдавать идентификаторы и следить за их согласованностью. Если главного выбрать не получается, то идентификаторы можно создавать двумя способами:
    - генерация GUID, который специально разработан быть статистически уникальным, на чьей бы стороне он не был создан (128бит)
    - добавление в идентификатор объекта идентификатора ноды, алгоритмы бывают разные, самый простой, определить максимальное количество нод и выделить в идентификаторе несколько бит для их номера (например максимальное количество нод 256, это 8бит в идентификаторе, пусть будут младшие)
    Ответ написан
    Комментировать
  • Как извлечь топ 15 очков из таблицы чтобы игроки не дублировались?

    @rPman
    так?
    SELECT user_id, name, MAX(points) as max_points
    FROM `games`
    GROUP BY user_id, name
    ORDER BY max_points DESC
    LIMIT 15;
    Ответ написан
    1 комментарий
  • Как сохранить mysql базу?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    На будущее, формат, в котором сохраняется БД, называется "дамп".
    А дальше всё просто, как сохранить дамп в mysql workbench
    Ответ написан
    Комментировать
  • Объясните CASE WHEN THEN?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    $this->database()->query('UPDATE ' . $this->database()->getTable('ad') . ' SET view = 0 WHERE ad_id = 34');
    $this->database()->query('UPDATE ' . $this->database()->getTable('ad') . ' SET view = 1 WHERE ad_id = 35');
    $this->database()->query('UPDATE ' . $this->database()->getTable('ad') . ' SET view = 2, amount=466 WHERE ad_id = 36');

    И не делайте себе мозги.
    Вы и сейчас-то смотрите на этот запрос как баран на новые ворота. А через месяц и вовсе перестанете понимать, что имели в виду.
    Ответ написан
    Комментировать
  • Несколько разных dns серверов?

    martin74ua
    @martin74ua
    Linux administrator
    Зачем писать NS от mail.ru ?
    Они предлагают это сделать для ленивых - чтобы не вникать, какие записи надо внести в домен - передайте домен на dns хостинг к нам и не думайте.
    Почитайте внимательно их документацию, они вам скажут, что конкретно надо добавить в доменную зону. И все у вас будет хорошо...

    А мешать в одном домене ns сервера с разных провайдеров - это такое.. На клаудфларовском у вас нету записей от mail.ru, на mail.ru нету записей от клаудфлара... В результате - почта у вас то работает, то не работает... Сайт то открывается, то не открывается....
    Ответ написан
    1 комментарий
  • Что сработает быстрее, что лучше использовать?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Хороший вопрос, хотя и задавался миллион раз.

    Когда у вас выполняется запрос
    SELECT * FROM users WHERE DATE(created_at) = '2024-04-14'
    то СУБД должна пройти весь индекс до конца, получить каждое значение created_at, применить к нему функцию, сравнить с переданным значением, и добавить строку в результат запроса.

    Когда у вас выполняется запрос
    SELECT * FROM users WHERE created_at BETWEEN '2024-04-14 00:00:00' AND '2024-04-14 23:59:59'

    То СУБД находит бинарным поиском первое нужное значение, потом бежит по заранее отсортированному индексу и возвращает все значения до последнего, подходящего под второе условие.
    Ответ написан
    4 комментария
  • Заразятся ли 2 раздела диска если на один из разделов попадёт вирус?

    @pfg21
    ex-турист
    главный элемент заражения, чтобы вирус заработал в операционной системе.
    как только его код начнет работать - он заразит до всего чего дотянется и пофих ему до всех делений.

    если он лежит неактивным файлом на носителе, то даже в соседнюю папочку его можно скопировать только ручками.
    Ответ написан
    Комментировать