Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Разработка программы по учету личных финансов


Автор: 4EVERCooL 20.4.2009, 06:10
Всем привет, принимайте новичка  smile . В общем, дело такое. Активно пользуюсь одной из программулин по учету личных финансов. Программулина писана в Дельфях, БД используется FB. И все бы ничего, да вот только глючная она (программа) не дай бог! Надоело мне с ней бороться и решил написать свою, тем более что ничего сложного (почти) тут нет - экономика знает только основные арифметические вычисления. Затык в том, что мой опыт программирования сводится к написанию программульки, считающей дискриминант и корни квадратного уравнения на Visual Basic  smile . И на этом как бы все. С дельфями начал разбираться, особых затруднений пока он у меня не вызывает, но знания пока никак не хотят складываться в целостную картину, необходимую для воплощения в жизнь моей задачи. Тут кусок, там кусок - а цельности пока нет. Поэтому, хочу пока задать следующие вопросы:

1. Выбор БД. Файрбёрд мне понравился, но по критерию удобства разработки БД - Акссесс рулит. Я слышал, что если использовать в программе БД Акссесса - это автоматически означает что этот самый Акссесс обязан стоять на машине пользователя. Это так? Если да, то можно ли засунуть в дистрибутив проги какой-нибудь драйверок, который поставится сам и все будет работать без Акссесса? В ФБ таких проблем нет.
2. Интерфейс. У меня стоит Делфи 2007, дефолтные графические компоненты естессно слишком стандартны. Подскажите, пожалуйста, где нарыть компоненты, которые помогут сделать "все красиво"  smile . Можно в личку.
3. Все что я до этого читал про нормирование БД сводилось к таблицам-справочникам (имена, явки, пароли). Где можно почитать про нормирование БД, работающих с финансовыми данными?
4. Есть ли где-то исходники подобной проги, пусть очень простой. Главное чтобы была БД и код работы с ней из приложения. Поиск по инету результатов не дал, есть все что угодно - но только не это. В основном опять всякие справочники с задачами сортировки, фильтрации и т.п. Мне же нужно, чтобы программулина могла считать и быстро ориентироваться в большем количестве записей в БД. Этим сильно грешит прога, которой я пользуюсь сейчас. Там скорость падает пропорционально росту записей.
5. Хранимые процедуры. Есть ли смысл переложить на процедуру все вычисления внутри БД? Или же этим должен заниматься клиент? 

Пока вроде все. Заранее спасибо за ответы smile. Сильно не пинайте, я хоть и новичок, но учусь очень быстро. Тока надо пнуть в правильном направлении  smile 

Автор: Bose 20.4.2009, 13:02
1) Нет, access ставить не надо. 
2) Смотри http://www.alphaskins.com/index_rus.php
5) В варианте, когда и база и клиент на одном компьютере - это без разницы. Не знал, что в Access-е есть хранимые процедуры. Мне даже кажется что их там и нет вовсе.

Если поискать по этому форуму, то можно найти больше информации: 
1) по фразам: access, MDAC
2) Alphaskins

Автор: Keeper89 20.4.2009, 13:27
1) На сколько я знаю понадобится MDAC.
2) Скины - для того чтобы было "все красиво":
  • BusinessSkinForm
  • DynamicSkinForm For Delphi/BCB
  • VCLSkin
  • AlphaSkins
3) В нормализации БД с финансовыми данными нет никаких отличий.
4) По поводу исходников смотри www.delphisources.ru, там должна быть работа с ADO.
5) + 1 к Bose, хранимые процедуры в Access кажется не предусмотрены.

Автор: insoft 20.4.2009, 13:34
Цитата(Keeper89 @  20.4.2009,  13:27 Найти цитируемый пост)
хранимые процедуры в Access кажется не предусмотрены. 

это точно - их там нет, точно также как нет и триггеров
а вообще, FB на локалке будет только свистеть... да и в будущем если надо будет перевести проект на сеть, то проблем не возникнет

Автор: 4EVERCooL 20.4.2009, 13:54
Спасибо за ответы!

Так все же, Firebird или Access?  smile 

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

Насчет скинов -большое спасибо. DynamicSkinForm я качал (чисто в ознакомительных целях), но толком не разобрался из-за отсутствия документации. попробую Альфаскин, вроде там хоть сопроводиловка есть.

Насчет процедур с триггерами, вероятно они мне и не понадобятся.

delphisources перерыл вдоль и поперек, ничего кроме хрени типа "учета книг в библиотеке" не нашел.



Автор: insoft 20.4.2009, 13:59
Цитата(4EVERCooL @  20.4.2009,  13:54 Найти цитируемый пост)
ФБ в текущей моей программе тормозит ужасно

всё зависит от архитектуры самой БД
сколько там таблиц, есть ли индексы, как настроена ссылочная целостность, на каком уровне идёт работа с набором данных, какой способ доступа именно используется (FIB Plus работает на много быстрее чем IBX)... в общем от много зависит скорость работы приложения...

Автор: Keeper89 20.4.2009, 14:36
Цитата(4EVERCooL @  20.4.2009,  13:54 Найти цитируемый пост)
Так все же, Firebird или Access

Все зависит от размеров и структуры БД. Я бы рекомендовал MS Access только для простых проектов, которые не будут в будущем масштабно расширяться.
Цитата(4EVERCooL @  20.4.2009,  13:54 Найти цитируемый пост)
delphisources перерыл вдоль и поперек, ничего кроме хрени типа "учета книг в библиотеке" не нашел.

Ну так вам нужен пример работы? Или что вы ищете?
Цитата(insoft @  20.4.2009,  13:34 Найти цитируемый пост)
это точно - их там нет, точно также как нет и триггеров

+1.

Автор: 4EVERCooL 20.4.2009, 14:38
Цитата

всё зависит от архитектуры самой БД
сколько там таблиц, есть ли индексы, как настроена ссылочная целостность, на каком уровне идёт работа с набором данных, какой способ доступа именно используется (FIB Plus работает на много быстрее чем IBX)... в общем от много зависит скорость работы приложения...


Таблиц 27 штук. Индексов 6. Ссылочная целостность не настроена вообще! То есть связи между таблицами на уровне базы тупо нет, видимо все делает клиентское приложение... Куча триггеров, запускающих генераторы АйДи строк. Две процедуры, не пойму для чего нужные, вроде бы для суммирования некоторых полей из одной из таблиц. В общем полный вперед smile))

Автор: Keeper89 20.4.2009, 14:42
Цитата(4EVERCooL @  20.4.2009,  14:38 Найти цитируемый пост)
Таблиц 27 штук. Индексов 6. Ссылочная целостность не настроена вообще! То есть связи между таблицами на уровне базы тупо нет, видимо все делает клиентское приложение... Куча триггеров, запускающих генераторы АйДи строк. Две процедуры, не пойму для чего нужные, вроде бы для суммирования некоторых полей из одной из таблиц. В общем полный вперед smile)) 

Судя по тому, что вы сказали неудивительно, что программа жутко тормозит.
Для начала срочно займитесь реинжинирингом БД. 
  • Во-первых, настройте связи, проверьте целостность и т.д., а то это вообще не БД, а набор файлов.
  • Если будете использовать Access - триггеры придется заменить.
  • ...
Пока все, что могу сказать.

Автор: insoft 20.4.2009, 14:56
4EVERCooL
можешь выгрузить метаданные в sql файл и прикрепить здесь на форуме...
любопытно посмотреть просто... как такие приложения вообще могут выпускаться в паблик :(

Автор: 4EVERCooL 20.4.2009, 15:19
Цитата

4EVERCooL
можешь выгрузить метаданные в sql файл и прикрепить здесь на форуме...
любопытно посмотреть просто... как такие приложения вообще могут выпускаться в паблик :(

Пожалста  smile . Наслаждайтесь

Автор: insoft 20.4.2009, 15:32
ну что тут можно сказать
такое чувство что вашу программу школьник писал smile
две процедуры  smile 
триггеры используются только для того чтобы реализовать автоинкрементность, представлены три вьёшки...
в общем архитектура ужасная.. всё выполняется самим клиентом...
как говорится: правильно смоделированная структура БД - это 80% сделанной работы.. остальное как говорится только краски навести smile
p.s. и если не секрет: как называется программа которой вы пользуетесь  smile 

Автор: 4EVERCooL 21.4.2009, 01:27
Цитата

p.s. и если не секрет: как называется программа которой вы пользуетесь   


Family 2009 Pro (www.sanuel.com). По набору функционала, хочу воздать должное,  - лучшая в своем классе на территории СНГ, но по программной реализации - просто ###. Красиво, но неграмотно. Защита тоже никакая, ломается не правя ни строчки кода в самой программе. Кстати если вдруг будете качать, вдруг узнаете графический компонент который там используется ;).

Автор: Keeper89 21.4.2009, 03:10
Цитата(4EVERCooL @  21.4.2009,  01:27 Найти цитируемый пост)
Family 2009 Pro (www.sanuel.com)

БД не смотрел, но в вышеописанный табличный хаос верится с трудом. Программа выглядит достаточно солидно.

Автор: 4EVERCooL 21.4.2009, 04:54
Цитата

БД не смотрел, но в вышеописанный табличный хаос верится с трудом. Программа выглядит достаточно солидно.


А вы посмотрите  smile . Метаданные, приложенные выше, взяты с моей рабочей базы, то есть как раз той, с которой я сейчас работаю в этой проге. Я же и говорю - выглядит отлично, но на деле - как китайский автопром...

Автор: insoft 21.4.2009, 07:07
видать над программой работал хороший дизайнер, но кривых рук программист :(

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)