1

Етап 1

База данных

2

Етап 2

Приложение

3

Етап 3

Более-менее рабочий вариант

1

Етап 1

База данных

2

Етап 2

Приложение

3

Етап 3

Более-менее рабочий вариант

10 серпня 2016

Мета закинута

Автор не відписував в цілі 8 років 6 месяців 29 днів

Автор мети

Кар'єра та робота

Запилить преферанс и куртизанок в своей БД v.2.0

У меня имеется цель уметь в базы данных. В рамках её я немного обмазался в базовый SQL, что даже позволило мне в моей скромной локальной базке данных на MS Access (у себя на работке) избавиться от избыточности и запилить некоторый полезный функционал (касающийся вычислений) при помощи встроенных в данный диалект SQL математических функций. Оно всё работает, но есть жирный минус. В угоду целостности всё то, что должно вычисляться (а не храниться), запилено так, что вычисляется по запросу, в который вложены ещё запросы, в которые вложены ещё запросы, в которые вложены ещё запросы, которые в доме, которой построил Джек. На голом MS Access далеко не разбежишься: даже когда интересует только некоторая часть результатов расчётов, всё равно вычисляется много больше чем то, что необходимо, что сильно сказывается на скорости работы. На ЯВУ общего назначения такие вещи делать проще эффективнее.

Алсо, близится к завершению мой первый этап на пути познания С++. За прошедшее время я немного обмазался в объектно-ориентированный подход (до того имел представления только про процедурное программирование), немного обмазался в шаблоны и STL. Т.е. некоторое ненулевое представление о том, что такое С++ у меня теперь имеется.

Познания по этим двум отраслям технологий (С++ и базы данных) в итоге должны сплестись в какую-то общую вундервафлю внутри моей черепной коробки. Но для этого я должен предпринять какие-то меры aka начать что-то делать. Собственно, пока я только собираюсь сблизить эти две разрозненные (у меня в голове) вещи. Ну действовать намерен примерно следующим образом.

1. MS Access подойдёт для тех, кто совсем не умеет в базы данных, ну прям совсем нуль. Позволяет получить некоторые начальные представления. Далее мне потребуется что-то другое. И вот я узнал про SQLite. Почитал, поигрался. Понравилось то, что его можно прям "встроить" в своё приложение. Исходники открытые. Никаких ADO или ещё чего-то, с чем ещё нужно разбираться, пока не потребуется. Пробовал запилить простенькое приложение на плюсах, подключающееся к файлу, который база данных, всё просто, всё взлетело. Собственно я собираюсь запилить на SQLite базу, повторяющую по структуре то, что у меня запилено в MS Access и залить туда имеющиеся на данный момент данные. По части запросов - не делать так громоздко (чтоб быстро работало), а всякое вычислительное - переложить на приложение, ибо там более гибко.

2. На С++ запилить (консольное) приложение, которое будет подключаться к этой базе данных, читать/писать туда, вычислять и показывать всякое, что у меня вычислялось и показывалось при помощи встроенных в мелкомягкий SQL математических функций, ну и предоставлять соответствующий интуитивно понятный пользовательский интерфейс.

Понятное дело, что для серьёзных программистов это раз плюнуть, но я в такое пока не умею, так что для меня challenge.

В последствии, при более глубоком изучении С++ (и того что вокруг него), а так же более солидных СУБД, часть программы, касающаяся получения информации из БД и записи её туда, можно перепилить под использование более солидных инструментов. Ну или там поназапиливать графических интерфейсов. Но это уже преферанс и куртизанки v.3.

 Критерій завершення

Консольное приложение на C++, которое пишет/читает в БД SQLite и может чуть более чем в то, во что у меня может база на MS Access, но быстро и без жжения в анусе.

 Екологічність мети

Поупражняться в прогрмирвоне на C++

Подружиться с STL

Подружиться с SQLite

Сделать, наконец, что-то, что можно показывать другим людям (возможно, получится не йобаныйстыд)

  1. База данных

    1. Запилить пустую базу, но с нужной схемой

    2. Залить в базу какие-то данные для упражнений на кошках (тестовая)

  2. Приложение

    1. Определиться с тем, во что оно должно уметь (полный исчерпывающий список)

    2. Определиться с тем, как оно должно в это уметь (архитектурка/дизайнчик)

    3. Запилить

    4. Потестировать/отладить на кошках

  3. Более-менее рабочий вариант

    1. Залить в базу не игрушечные данные

    2. Работать с этим месяцок-два

  • 1817
  • 10 серпня 2016, 13:24


Щоденник мети

48день

Запис до етапу «Более-менее рабочий вариант»

leleg26 вер 2016, 13:34

Привет анонимусы!

Я-таки запилил БД на SQLite и даже реализовал все те велосипеды (килограмм селектов), которые у меня были на MS Access. Естессна, есть отличия в той части, которая выходит за рамки непосредственно SQL (я про всякие встроенные функции, характерные для диалектов), но оно не вызвало существенных проблем.

Также, я даже перенёс "не игрушечные" данные, так что, в принципе, уже могу работать без мелкомягкой БД. Некоторый трабл доставил, как выяснилось, csv (в том смысле, что я долго искал, отчего вылазят такие различия в округлении при расчётах, но нашёл-таки где собака зарыта). Однако, пилить и тестировать приложение на С++ буду над "игрушечным" вариантом.

Впрочем, чему-то новому пока не особо научился.

10день

Запис до етапу «База данных»

leleg19 серп 2016, 12:12

Привет, анонимусы!

Попутно раскуривая тонкости и толстости SQLite и ориентируясь на нарисованную мной же картинку, ударными темпами запиливаю файлик с последовательностью операторов SQL (в той его части, которая DDL), который в рамках одной транзакции должен сделать мне магию кучу таблиц, с требуемой структурой и связями. Получилось чуть более 500 строк с гуриями и шахматами комментариями, оно уже почти готово, но надо ещё покумекать с ограничениями, чтоб было ваще норм для целостности.

Думаю надо будет, помимо того, что импортировать туда все данные через жопу при помощи волшебного формата csv, ещё реализовать в этой базе VIEW's с таким же функционалом, что у меня были сделаны в базе данных на MS Access, а потом забыть уже про ентот MS Access и даже не вспоминать. А работать уже вот с этой базой.

Ещё на просторах интернетов нашёл частичный перевод монографии 'The Definitive Guide to SQLite' aka 'Неполное руководство по SQLite для пользователей Шиндовс'. Несмотря на обилие очепяток и даже ОГОСПАДЕБОЖИМОЙ грамотичиских ашибок, в целом материал нужный. К примеру, есть там параграф под названием 'select и конвейер операций', где для самых маленьких и тупых годно рассказывается, как и в какой последовательности этот самый конвейер работает. (Для тех самых "средних" разработчиков, боящихся SQL). М.б., если будет не лень или кто-нибудь пнёт, запилю соответствующий пост в большой цели.

И это-то вот это... Полагаю, что тут найдётся кто-то, кто если и не гуру SQL, то, по крайней мере, знающий толк в извращениях разбирающийся в нём получше меня. Хотел попросить совет, но пока писал длиннопост с вопросом, вроде как сам придумал, как сделать, поэтому уже потёр, так и не опубликовав. :) Попробую вариант... Взлетит - хорошо, не взлетит - буду дальше курить инфу или попрошу "памагитии!".

Вы тоже можете
опубликовать свою
цель здесь

Мы поможем вам ее достичь!

310 000

единомышленников

инструменты

для увлекательного достижения

Присоединиться
Реєстрація

Можливості
безмежні.
Настав час
відкрити свої.

Уже зарегистрированы?
Вхід на сайт

Заходьте.
Відкрито.

Ще не зареєстровані?
 
Підключіться до будь-якого з ваших акаунтів, ваші дані будуть взяті з акаунту.
Забули пароль?
Александр П
Лена
Раздолбайка
Лена
Лена