Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2012, 11:58   #1
MarazmDed
Пользователь
 
Регистрация: 19.12.2012
Сообщений: 29
По умолчанию Проектирование крупных приложений БД

Добрый день, коллеги!

Меня интересует такой вопрос. Есть куча учебников по созданию приложений БД. И в учебниках все получается очень красиво: положили пару компонент на форму, в датасете создали поля, настроили описания и т.д. Положили на форму навигатор, вуаля! Но почему-то нет учебников, по проектированию крупных приложений (и даже средних, трудоемкость, которых вылезает за пару таблиц).

Как быть, если имеем в БД с десяток таблиц и кучу форм с лукапами, которые кроме прочего еще должны взаимодействовать между собой?

Простой пример. Есть некая таблица, допустим "физ. лица", в которой есть лукапы на другие таблицы. Из разных форм мы ссылаемся на эту таблицу. Например, "сотрудники", "покупатели". Беда в том, что каждый раз, когда нам нужен НОВЫЙ датасет (со своим, независимым курсором), нужно будет заново описывать все поля/лукапы и т.д., что утомляет. Очень бы хотелось иметь некий инструмент, который бы позволял рисовать схему БД, и прямо в этой схеме задавать все параметры (лукапы, названия колонок и т.д.), а при выкладывании датасета на форму, чтобы все свойства заполнялись по этой схеме. Такой подход был бы продуктивным.

Я для упрощения работы каждую таблицу кладу в новый датамодуль. Заполняю поля, все настраиваю. И на каждой форме, которой эта таблица нужна програмно создаю этот датамодуль. Но это не выход - очень утомительно создавать дата-модули, да еще и контролировать время жизни каждого.

Поделитесь советами, кто как проектирует приложения, посложнее студенческих курсовых?

Версия Delphi - XE2 и выше.
MarazmDed вне форума Ответить с цитированием
Старый 19.12.2012, 12:36   #2
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

Имхо как на букашке чертил так и чертил... много чего продумываешь когда от руки простым карандашом рисуешь ... на компьютере как то не творчески получается.
Последнею БД в 30 таблиц нарисовал за день. забил в Ibexpert за 40 минут.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 19.12.2012, 12:47   #3
MarazmDed
Пользователь
 
Регистрация: 19.12.2012
Сообщений: 29
По умолчанию

Наверно, не совсем корректно выразился. Схема БД уже создана. Т.е. проблемы нарисовать таблички нет. Есть проблема запитать эту БД в Delphi. Ну как выглядит типичный процесс? Положили DataSet на форму. Указали коннекшн, название таблицы и понеслась.. Нужно дважды кликнуть, добавить все колонки из БД, создать поля-лукапы. Потребовалось туже самую табличку добавить - опять кладем dataset, настраиваем в ObjectInspector'е, дважды кликаем по компоненту и делаем РОВНО ТУ ЖЕ САМУЮ работу, которую уже однажды делали. Когда таких таблиц много - поддерживать это безобразие становится утомительно. Вот и вопрос: как быть?
MarazmDed вне форума Ответить с цитированием
Старый 19.12.2012, 13:18   #4
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

Цитата:
запитать эту БД в Delphi
не знаю про что вы.... но я всё вывожу и редактирую запросами... в дата сети вообще не чего не настраиваю..тупо соединяю с Dbgrid.
последнее время вообще stringgrid'om пользуюсь...
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 19.12.2012, 14:36   #5
MarazmDed
Пользователь
 
Регистрация: 19.12.2012
Сообщений: 29
По умолчанию

Цитата:
Сообщение от BARNEY Посмотреть сообщение
не знаю про что вы.... но я всё вывожу и редактирую запросами... в дата сети вообще не чего не настраиваю..тупо соединяю с Dbgrid.
последнее время вообще stringgrid'om пользуюсь...
1) Как с производительностью в stringgrid'e? Одно приложения я таким макаром написал. Меня устраивает процесс разработки, но: а) в стринггриде много чего нет (сортировка по разным столбцам - уже творчество), б) что делать, если в таблице, скажем, 1000000 записей? StringGrid безбожно отъест памяти и приложение рухнет. в) Программирование интерфейса становится мучительным
2) Для чего же в Delphi вообще сделали визуальные компоненты для БД, если их невозможно применять на практике?
3) В датасете не получится ничего не настраивать - как DBGrid узнает, какие есть поля в таблице?
4) Как при таком подходе реализовать работу с лукапами?
MarazmDed вне форума Ответить с цитированием
Старый 19.12.2012, 14:38   #6
MarazmDed
Пользователь
 
Регистрация: 19.12.2012
Сообщений: 29
По умолчанию

Попробую по другому переформулировать вопрос: визуальное проектирование приложений БД (датасеты, контролы для работы с БД) жизнеспособно? Можно ли не утонув в рутине (и тем самым сведя на нет преимущества визуального проектирования) разрабатывать приложения объемом сложнее, чем курсовые в ВУЗе?
MarazmDed вне форума Ответить с цитированием
Старый 19.12.2012, 14:51   #7
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Цитата:
Нужно дважды кликнуть, добавить все колонки из БД, создать поля-лукапы. Потребовалось туже самую табличку добавить - опять кладем dataset, настраиваем в ObjectInspector'е, дважды кликаем по компоненту и делаем РОВНО ТУ ЖЕ САМУЮ работу, которую уже однажды делали.
вот мне никогда не нравился такой метод ... ибо много мусора получается ради пары частных случаев
поэтому пользуюсь исключительно FieldByName\Fields[]\ParamByName\Params[]
да и головняка выходит меньше в итоге ... таблицу в DataSet открыл и можно уже работать без проблем
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 19.12.2012, 14:55   #8
MarazmDed
Пользователь
 
Регистрация: 19.12.2012
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
таблицу в DataSet открыл и можно уже работать без проблем
Тогда можно поподробнее, про организацию работы?
Как выводить данные в грид?
Как реализовать лукапы в гриде (имеется в виду без геморроя )?
как быть, если нужно в грид вывести 1000000 строк?
MarazmDed вне форума Ответить с цитированием
Старый 19.12.2012, 14:56   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
как быть, если нужно в грид вывести 1000000 строк?
Выбросить такую программу, желательно еще до того как начать ее делать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.12.2012, 14:59   #10
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Цитата:
Как выводить данные в грид?
как и раньше - указать источник данных и выбрать соотв. поля
Цитата:
Как реализовать лукапы в гриде (имеется в виду без геморроя )?
лукапы в гриде в крупных проэктах? --- ггг ... юзай хранимые процедуры на стороне сервера
Цитата:
как быть, если нужно в грид вывести 1000000 строк?
интересно, а как ты сейчас решаешь эту проблемму?

зы. Аватар, +1
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проектирование БД Morgusha SQL, базы данных 1 03.06.2012 10:22
Проектирование БД. lovetolaugh БД в Delphi 3 15.06.2011 22:08
проектирование бд NieL Помощь студентам 1 28.04.2011 18:04