• Правильно ли построена структура бд?

    @baitarakhov
    Первый вариант с отдельной колонкой для каждой page - это не правильно, будет правильнее запись для каждой страницы хранить в отдельной таблице, например в структуре:
    id integer, -- primary key для page
    comics_id integer, -- foreign key для comics
    page_order integer, -- порядок для page
    page varchar(255) -- значение для page


    Далее для того, что бы для каждой comics_id не было дублированных page_order - устанавливаешь ограничение уникальности для полей comics_id, page_order. Это всего лишь пример, возможно у вас будет лучшее решение.

    Самое простое, возьмите ваши предполагаемые структуры данных и напишите SQL выборки для возвращения необходимых вам данных, в итоге выберите тот вариант, где SQL выражение получиться простым без сложных соединений и под-запросов с агрегацией.

    Также обратите внимание, где проще всего возможно будет контролировать уникальность данных средствами БД (constraints), что бы потом вам не пришлось разбираться с дублированными записями в таблицах.
    Ответ написан
  • Кто знает что за тема?

    @baitarakhov
    Ответ написан
    Комментировать
  • Почему долго выполняется хранимая процедура?

    @baitarakhov
    Создайте простую процедуру, которая выполняет простую логику, например пишет логи, после попробуйте вызвать из скрипта Python. Если все ок хорошо, то добавьте часть нужной Вам логики в процедуру и снова пробуйте. Если плохо, то проблема не в процедуре и не в Oracle. Вам нужно будет копать в другую сторону.

    Если вы обнаружите, что все так и проблема в Oracle, то настройте логирование, смотрите метрики по времени, смотрите план запроса, который строит Oracle при вызове процедуры из Python и план запроса, который строится при вызове непосредственно из клиента Oracle.
    Ответ написан
  • Как сделать такой запрос?

    @baitarakhov
    select
    count(1) as "kolvo"
    from (
    select name from a
    union all
    select name from b
    ) ab
    where ab.name = 'param_name'
    Ответ написан
    Комментировать
  • SQL запрос для каждого - все?

    @baitarakhov
    В основном это решается одним из двух групповых функции ниже, смотря на какой СУБД вы работаете. Способы использования подробно изложены в документации и в просторах интернета, в том числе и на русском.

    T-SQL: string_agg function
    https://docs.microsoft.com/en-us/sql/t-sql/functio...

    PL/SQL: listagg function
    https://docs.oracle.com/cd/E11882_01/server.112/e4...

    Можно конечно придумать свой велосипед, но зачем?
    Ответ написан
  • Стандартная сортировка строк PostgreSQL?

    @baitarakhov
    В данном случае рекомендую создать отдельное поле в вашей таблице (или в таблицах), в котором вы будете записывать уникальный индексированный идентификатор, которую необходимо заполнить посредством генератора последовательности (sequence) и также настраиваете значение по умполчанию для созданного поля значением из sequence. После чего будете сортировать по этому полю.
    Ответ написан
  • Как мне получить сначало число, потом пару букв?

    @baitarakhov
    const str = '5smdmasdasda';
    
    var arr = [];
    
    arr.push(parseInt(str));
    
    str2 = str.replace(parseInt(str), '');
    
    const arr2 = str2.match(/[\s\S]{1,2}/g) || [];
    
    arr = arr.concat(arr2);
    
    console.log(arr); // [ 5, 'sm', 'dm', 'as', 'da', 'sd', 'a' ]
    Ответ написан
    Комментировать
  • Что надо знать чтобы изучить pl/sql?

    @baitarakhov
    В Enterprise проектах (в основном в банковском ПО) бизнес логику часто пишут на PL/SQL в СУБД Oracle. По этому рекомендую Вам книгу по программированию на PL/SQL "Oracle PL/SQL. Для профессионалов. 6-е изд.".
    По данной книге вы можете выполнять поиск по тексту и находить ответы на многие вопросы по Oracle PL/SQL.

    Верный путь будет прочитать книгу и практиковаться на каком то домашнем проекте.
    Например. вы можете поднять локальную БД Oracle XE, как раз недавно вышла его свежая версия, о чем говориться в статье habr. В локальной БД Oracle создать свою первую схему с таблицами, наполнить их данными, повыполнять различные выборки смотря по примерам из книги, создать хранимые процедуры и функции, создать пакет, поиграться с триггерами, попробовать
    использовать представления и материлизованные представления, понять что такое коллекции итд.

    Также при изучении рекомендую воспользоваться несколькими IDE для разработки на Oracle PL/SQL, например PL/SQL Developer, TOAD, DataGrip, хотя последнее не часто используется, по крайней мере в моей практике работы в разных банках и в аутсорсе.


    Фейерштейн С., Прибыл Б.
    Ф36 Oracle PL/SQL. Для профессионалов. 6-е изд. — СПб.: Питер, 2015. — 1024 с.: ил. —
    (Серия «Бестселлеры O’Reilly»).

    Данная книга является подробнейшим руководством по языку PL/SQL, представляющему
    собой процедурное языковое расширение для SQL. В ней детально рассмотрены основы PL/
    SQL, структура программы, основные принципы работы с программными данными, а также ме-
    тодика применения операторов и инструкций для доступа к реляционным базам данных. Боль-
    шое внимание уделяется вопросам безопасности, влиянию объектных технологий на PL/SQL
    и интеграции PL/SQL с XML и Java.
    За последние десятилетия, в течение которых переиздается данная книга, она стала незаменимым
    руководством по PL/SQL для сотен тысяч программистов, как начинающих, так и профессиона-
    лов. Шестое издание книги полностью обновлено под версию Oracle12c.
    Ответ написан
    Комментировать
  • Как правильно писать sql?

    @baitarakhov
    SELECT 
    countries.short_name, 
    COUNT(user.id) as cnt_all_stat_user, 
    COALESCE(sum(case when user.status = 1 then 1 end),0) as cnt_stat_1_user
    FROM user 
    INNER JOIN countries 
    	ON user.country_id = countries.country_id
    GROUP BY short_name
    Ответ написан
    Комментировать
  • Как(откуда) читать SQL-запросы?

    @baitarakhov
    Начал писать свои рекомендации и подумал, может есть уже готовая статья и как оказалось, что очень легко гуглиться ответы на подобные вопросы, можешь покурить следующую статью:
    https://habrahabr.ru/post/305926/
    Ответ написан
    Комментировать
  • Какой ноутбук выбрать с бюджетом ~1000$?

    @baitarakhov
    Сам долго выбирал когда то ноутбук, критерий были похожие, тогда остановил выбор на Asus G501VW, а сейчас взял бы следующий продукт от Xiaomi https://market.yandex.ua/product/1773680981
    Цена, качество!
    Ответ написан
  • Вирус или столько рекламы уже в норме?

    @baitarakhov
    https://brave.com/
    Brave Спасает от 90% рекламы, и умеет блокировать рекламу в YouTube!
    Ответ написан
    5 комментариев
  • Базовая информация о SQL?Книги по SQL?

    @baitarakhov
    Привет! Рекомендую систематизировать знание, например прослушать цикл курсов от технострим https://youtu.be/SfYaAQ9-RnE
    Ответ написан
    Комментировать
  • Как переделать коррелированный вложенный подзапрос в некоррелированный?

    @baitarakhov
    Для того, что бы можно сделать анализ, создай схему с нужным СУБД на сайте sqlfiddle.com и вышли линк на свою схему, далее посмотрим. По предварительному анализу, вижу что в вопрос в категорий MYSQL, так как я не работал с данным СУБД, то постараюсь написать выборку на простом SQL и что то на подобие MYSQL.

    1) Простой и читабельный вариант:
    select  t.*
     from fitness.pair_sports t
     where exists 
     (
     select t2.fio 
     from fitness.pair_sports t2
       where t2.fio = t.fio
     group by t2.fio
       having count(*) > 1
     );


    2) Какой то мутный вариант, возможно сработает
    select * from
    (
    select  @rownum:= case when t.fio <> @name then 0 else 1 end as rn,
            @name:=t.fio as name,
            t.*
     fitness.pair_sports t
    order by t.fio
    ) tt
    where tt.rn = 1;
    Ответ написан
    Комментировать
  • Как писать код быстрее?

    @baitarakhov
    За ваши деньги любой каприз, в том числе и быстрый код, ну а если самому хочется повысить скорость разработки, то только практика ! А так с практикой освоются техники и найдешь себе различные инструменты, возможно и самому придется запилить часть инструментов :)
    Ответ написан
    Комментировать
  • Как уменьшить фото и раскидать по соответствующим папкам автоматически?

    @baitarakhov
    Привет! Если вопрос только в автоматизации ручного труда, то можно сделать практический через любой продвинутый графический редактор. Например в Photoshop и видео уроков предостаточно, для примера вот ссылки: рус / eng
    Если ну очень хочется покодить, то вот
    Ответ написан
    1 комментарий