Russian Qt Forum
Апрель 19, 2024, 21:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: SQLite. Круглосуточный сбор данных  (Прочитано 9306 раз)
8Observer8
Гость
« : Сентябрь 17, 2014, 19:33 »

Привет!

Для опыта делаю некоммерческое приложение для сбора данных. Каждый день автоматически будет создаваться новая таблица в базе данных. Потом оператор через календарь сможет посмотреть историю "Дата/Время" и "Значение" за указанный день.

Впервые делаю подобное приложение. Какие подводные камни меня ожидают? Возможно, программа будет работать на сервере годами (скорее всего, на Linux). К ней будет удалённый доступ.

Для текущей таблицы решил выбрать QSqlTableModel. Сколько таблиц я смогу создать в одной базе данных? Может лучше, чтобы каждый месяц программа создавала новый файл .sqlite? Для того, чтобы случайно не удалили всю базу данных. А так только за один месяц пропадёт.

В общем, любые советы, предостережения и т.д. Буду очень рад Улыбающийся
« Последнее редактирование: Сентябрь 17, 2014, 19:39 от 8Observer8 » Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #1 : Сентябрь 17, 2014, 20:45 »

А зачем новая таблица на каждый день, что одной не хватит?
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
Hrundel
Гость
« Ответ #2 : Сентябрь 17, 2014, 22:34 »

Начни с чтения книг по базам данных, "Новая-таблица-каждый-день".
Записан
OKTA
Гость
« Ответ #3 : Сентябрь 17, 2014, 23:03 »

Для начала тебе надо выбрать СУБД. Иначе если ты будешь делить на файлы, то как поиск осуществлять и следить за всей этой кучей барахла? А так это можно свалить на СУБД.
И sqlite для подобных задач не подходит - уж лучше MySql, раз идея о линуксовом сервере. Sqlite это так, для мобильных приложений и программулек, которым надо хранить данные, но не для программы, которая собирается работать годами)
И да, почитай о БД, СУБД и всей это лабуде  Веселый.. создавать новую таблицу каждый день - это, простите, не комильфо, если мягко сказать  Смеющийся

Для начала хватит))
Записан
8Observer8
Гость
« Ответ #4 : Сентябрь 18, 2014, 07:54 »

А зачем новая таблица на каждый день, что одной не хватит?
Я подумал, что так лечше будет, если я хочу выводить данные на экран в виде таблицы (в которую добавляются новые строчки каждые 4 секунды). И удобнее для выбора таблиц для просмотра.

Начни с чтения книг по базам данных
Что посоветуешь?

И sqlite для подобных задач не подходит - уж лучше MySql
Попробую MySql. Вот эта инструкция подойдёт? http://qt-project.org/forums/viewthread/41828/
« Последнее редактирование: Сентябрь 18, 2014, 07:57 от 8Observer8 » Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #5 : Сентябрь 18, 2014, 09:46 »

Я подумал, что так лечше будет, если я хочу выводить данные на экран в виде таблицы (в которую добавляются новые строчки каждые 4 секунды). И удобнее для выбора таблиц для просмотра.
Одна таблица, в нее пишутся данные, а показывать потом через QSqlQueryModel <-> QTableView, т.е. будешь делать SQL запрос на выборку данных за нужный день.
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
8Observer8
Гость
« Ответ #6 : Сентябрь 18, 2014, 10:34 »

Цитировать
Одна таблица, в нее пишутся данные, а показывать потом через
Как думаешь, стоит это переделовать на MySQL? Или отдать человеку с SQLite? Ему уже программа нужна. С одной стороны сделал тяп-ляп побыстрому - работает и можно уже использовать. А с другой может сделать сначала по-нормальному на MySQL, а потом отдать? Но время идёт...
Записан
Bepec
Гость
« Ответ #7 : Сентябрь 18, 2014, 11:36 »

Вспоминается история про Васю и Петю.
Когда Вася писал и правил программу, желая её довести до совершенства и только потом продавать, Петя продавал программу с ошибками, принимал жалобы и исправлял.

В конце у Васи 2 покупки программы, потому что о ней никто не знает, а у Пети обширная база клиентов, свой дом и хорошая репутация.
Записан
OKTA
Гость
« Ответ #8 : Сентябрь 18, 2014, 11:37 »

Синтаксис везде одинаковый - что sqlite, что Mysql - вся запарка в том, что Mysql надо на сервере настраивать.
Записан
8Observer8
Гость
« Ответ #9 : Сентябрь 18, 2014, 11:47 »

Цитировать
Вспоминается история про Васю и Петю.
Мудрая легенда Улыбающийся Вася - крайность, а Петя - середина Улыбающийся

Цитировать
вся запарка в том, что Mysql надо на сервере настраивать.
Простейший пример для начала бы сделать. Кстати, у меня такая штука есть. Этот эмулятор (если можно так сказать) Можно его использовать?


« Последнее редактирование: Сентябрь 18, 2014, 12:18 от 8Observer8 » Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #10 : Сентябрь 18, 2014, 16:40 »

Для тестов у себя можно, а на серваке, конечно, кроме MySQL ничего не нужно.

Цитировать
Этот эмулятор (если можно так сказать)
Это никакой не эмулятор, а просто набор инструментов для быстрого развертывания веб-сервера. Например, Denwer еще есть.
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
OKTA
Гость
« Ответ #11 : Сентябрь 18, 2014, 16:44 »

Не переживай - главное программу написать. Настроить MySql совсем несложно. Да и настраивать не так много придется - создать БД, настроить подключение, определиться с бэкапами и все, а об этом миллиард статей.
Записан
8Observer8
Гость
« Ответ #12 : Сентябрь 19, 2014, 21:39 »

Цитировать
Не надо эти нетто, брутто. Вообще выбросьте их из головы. Есть весовой терминал. Он показывает значение. Бабушка записывает. Тачка заехала с цементом, записала вес, время. Когда эта тачка выгрузит цемент и заедет на весы, бабушка запишет вес тачки пустой. Потом выйдет разница. Но это не важно.

Важно сейчас удаленное наблюдение за честностью бабушки, т.е. правдивость этих двух значений для данной фуры. Будет удаленный доступ на ПК, к которому через вирт. ком-порт подключен терминал. В любой момент времени проверяющий сидя в офисе может зайти на этот ПК (который желательно работает на Linux, чтобы за Винду не платить) и посмотреть когда какой вес был. Ему нужно проверить только вес в такой-то момент времени, т.е. посмотреть историю взвешиваний. Считаем, что он сверится со своей бумажкой в которой указано какая фура когда приезжала. Т.е. для программы ТЗ идеальное на данный момент времени:

1. Ведет историю взвешиваний.
1.а)  0 не повторяет в логе.
1.б) когда начинается взвешивание заносит значения каждые 4 секунды. Оператор сам затем посмотрит получившееся точки и вычислит среднее значение (может оказаться, что весы не будут колебаться, тогда еще проще)
2. Постоянно сохраняет результаты, чтобы при внезапном отключение питания результат сохранился.
3. Возможность в любой момент посмотреть историю взвешиваний.
4. Работает постоянно/круглосуточно/7ДнвНед
5. Работает в Линухе

Я думаю, тут SQLite хватит для начала.
« Последнее редактирование: Сентябрь 19, 2014, 21:44 от 8Observer8 » Записан
8Observer8
Гость
« Ответ #13 : Сентябрь 19, 2014, 21:45 »

Текущее состояние. Поставил Linux Mint 13 на виртуальную машину (Virtual Box). Поставил Qt 5.3.2 по этой инструкции: https://qt-project.org/wiki/Install_Qt_5_on_Ubuntu Правлю проект с целью получить исполняемый файл для Linux.

Будем выводить только текущее значение веса и дату\время. Программа сохраняет в файл .sqlite. Этот файл можно будет просматривать каким-нибудь QSLite-менеджером, например, этим: ссылка
« Последнее редактирование: Сентябрь 19, 2014, 22:10 от 8Observer8 » Записан
Hvzh
Гость
« Ответ #14 : Октябрь 28, 2014, 12:58 »

Основной подводный камень - пункт 1.б
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.