© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
31 июля 2018 г. 8:57

PostgreSQLРабота с триггерными функциями в PostgreSQL

PostgreSQL, Триггерные функции, База данных

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

В качестве базы данных использовалась PostgreSQL.

Исходная таблица “ base_table ” упрощенно имеет следующий вид:

Поля таблицы имеют следующие типы:

  • id - integer, auto inc;
  • date - date;
  • quantity - integer;
  • hours_count - time

Остальным полям упрощенно присвоен тип text .

Упрощения введены чтобы не заострять внимание на структуре таблицы.

27 июля 2018 г. 13:31
Arrow

Выборка данных из базы данных

Доброго времени суток!
Использую PostgreSQL.
Попробую объяснить вопрос на примере.
Есть таблица main_table с данными:
id         first_name                          name                          project                          proposal_count
1          Jon                                       Dow                          Qt                                                       1
1          Jeck                                     D                               SQL                                                    1
1          Jon                                       Dow                          Qt                                                       2
1          Jeck                                     D                               SQL                                                    1
1          Jon                                       Dow                          SQL                                                    1


Как можно получить выборку или создать новую таблицу следующего вида:

first_name                          name                         project                          all_proposal_count
Jon                                       Dow                          Qt                                                       3
Jeck                                     D                               SQL                                                    2
Jon                                       Dow                          SQL                                                   1

25 мая 2018 г. 13:42
evgenm27

БД для хранения истории сообщений

Добрый день. Пишу чат на qt. Нужно сделать так, чтобы при нажатии на определенного пользователя подгружалась история переписки с ним. Возникло несколько вопросов. Какую бд посоветуете для хранения сообщений? Я пока остановился на sqlite или postgresql. И как можно сделать так, чтобы более старые сообщения подгружались по мере необходимости, ведь если переписка будет огромная и будет подтягивать сразу целиком, то будут проблемы с производительностью. Буду признателен за помощь.

4 июня 2017 г. 8:52

PostgreSQLИсправление клиентской кодировки базы данных PostgreSQL с LATIN1 на UTF8

PostgreSQL, Django, LATIN1, UTF8

На сайте был один баг, который проявлялся при попытке прикрепления к сообщениям файлов, названия которых были на кириллице. В данном случае сайт выдавал ошибку 503. Это происходило несмотря на то, что кодировка базы данных была в UTF8, после исправления кодировки самой базы данных в предыдущей статье . Тогда как Django выдавал следующее сообщение:

'latin-1' codec can't encode characters in position 55-64: ordinal not in range(256)

Проблема заключалась в том, что кодировка сервера была первоначально выставлена в LATIN1. То есть следующие команды давали следующий вывод:

postgres=# show server_encoding;
 server_encoding 
-----------------
 LATIN1
(1 row)

postgres=# show client_encoding;
 client_encoding 
-----------------
 LATIN1
(1 row)

postgres=# \encoding 
 LATIN1

Выполнение команды SET CLIENT_ENCODING TO 'utf8'; не давало результата, после выхода из psql кодировка возвращалась в LATIN1 .

25 сентября 2016 г. 17:37

PostgreSQLMaterialized Path в PostgreSQL

PostgreSQL, MaterializedPath

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

Распространёнными подходами для организации древовидных структур являются:

Adjacency List
Список смежных вершин

Организация структуры данных заключается в том, что каждый объект хранит информацию о родительском объекте, то есть в строке таблицы имеется дополнительное поле, в котором указывается ID объекта, в который вложен данный объект.
Nested Set
Вложенное множество
Вложенные множества хранят информацию не Только о так называемых левом и правом ключе, а также уровне вложенности. Данный вариант организации структуры данных удобен для чтения, но более тяжело поддаётся модификации.
Materialized Path
Материализованный путь
Идея этой структуры данных заключается в том, что каждая запись хранит полный путь к корневому элементу дерева.

Рассмотрение этих структур данных было вызвано необходимостью внедрения на сайт поддержки комментариев для статей.

16 сентября 2016 г. 17:56

DjangoDjango - Урок 001. Развёртывание сайта на Django + PostgreSQL + Gunicorn + Nginx

Ubuntu, Gunicorn, Django, PostgreSQL, Nginx

После того, как доступ к серверу с Ubuntu 16.04 был настроен в одной из предыдущих статей , настало время развернуть на нём всё необходимое для работы сайта, а именно:

  • Django - фреймворк для разработки web-приложений на языке Python;
  • PostgreSQL - базу данных SQL ;
  • Gunicorn - WSGI HTTP сервер на Python для UNIX систем;
  • Ngnix - HTTP-сервер и обратный прокси-сервер, почтовый прокси-сервер, а также TCP/UDP прокси-сервер общего назначения;
  • Supervisor - это менеджер процессов, который существенно упрощает управление долго работающими программами, в частности сайтами, которые необходимо автоматически перезапускать после падений.
15 октября 2018 г. 21:36
Allyans .

C++ - Тест 001. Первая программа и типы данных

  • Результат 60баллов,
  • Очки рейтинга-1
15 октября 2018 г. 11:25
Екатерина Самойлова

C++ - Тест 002. Константы

  • Результат 33баллов,
  • Очки рейтинга-10
15 октября 2018 г. 11:17
Екатерина Самойлова

C++ - Тест 006. Перечисления

  • Результат 80баллов,
  • Очки рейтинга4
Последние комментарии
10 октября 2018 г. 9:50
Евгений Легоцкой

Qt/C++ - Урок 083. Создание динамической библиотеки и подключение её в другой проект

Если и начинать писать о плагинах, то нужно тогда с Qt Creator начинать, там наверняка будет одинаковый принцип, но по Qt Creator хотя бы информация есть.
10 октября 2018 г. 9:48
ost.vld

Qt/C++ - Урок 083. Создание динамической библиотеки и подключение её в другой проект

О плагинах к QtCreator в целом, тоже интересно.
10 октября 2018 г. 9:46
ost.vld

Qt/C++ - Урок 083. Создание динамической библиотеки и подключение её в другой проект

ну типа того, создание программы, функционал которой можно расширять плагинами, и, в перспективе, создание API.
10 октября 2018 г. 8:31
Евгений Легоцкой

Qt/C++ - Урок 083. Создание динамической библиотеки и подключение её в другой проект

Типо как в Qt Creator? Самому бы интересно было о таком почитать. В данный момент я бы мог написать только о написании плагинов для Qt Designer. С этим есть некоторый опыт.
Сейчас обсуждают на форуме
15 октября 2018 г. 12:45
Allyans .

QGraphicsItem change color

Хорошо)
11 октября 2018 г. 10:13
Arrow

Работа с WebView в QML

Нашел в чем проблема. Пишу на случай если кому-то попадется такое же счастье с WebView как и мне. Проблема как оказалась с Debug версией, так как в Release и Profile все работает (...
10 октября 2018 г. 12:49
Виталий Антипов

Кто что делает на Qt?

Работаем по локальной сети. Файл базы, схемы и фото лежат на сервере. Чтобы не было проблем при одновременной работе с одним файлом, все запросы обернул в транзакции, как указано в документаци...
10 октября 2018 г. 11:21
Arrow

Редактирование записи на форуме

Добрый день! К сожалению встретил небольшой баг на форуме. При создании записи на форуме и вставке кода, через соответствующую кнопку номера строк проставляются верно, но каждый...
10 октября 2018 г. 9:46
Arrow

Настройка Qt Creator для Android

Я Genymotion  ставил с VBox в комплекте для личного использования, после добавил из списка телефон с нужным API. Запустил его и при компиляции Qt Creator сам нашел его и все запустилось...
Присоединяйтесь к нам в социальных сетях