C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
проектирование БД, общие вопросы — из опыта
full_lamer
Отправлено: 21.01.2005, 15:59


Машинист паровоза

Группа: Участник
Сообщений: 225



доброго времени
хочу поднять тему по оптимальному проектированию БД и написанию приложений работающих с ними. а именно:
целесообразно ли проектировать большие БД с большим числом таблиц и др. объектов, или же проще и удобнее создать несколько БД и время от времени обновлять данные. я к тому вопросу — что обычное среднее предприятие содержит от 3-4 БД (от банальных конфигураций 1С до всякого рода финансовых и вспомогательных программы типа "Налогоплатильщик 200Х" (от ПФР) и программ от МНС). я думаю стоит ли вести одну большую базу на предприятии, а в подразделения просто ее реплицировать, или же для каждого подразделения завести БД учитывая ее определенные требования.

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

спасибо за внимание.
olegenty
Отправлено: 21.01.2005, 16:30


Ветеран

Группа: Модератор
Сообщений: 2412



1. то, что это должна быть БД с единой структурой — факт (чисто управленческий... идеальная БД + софт к ней покрывают ВСЕ функции предприятия)
2. для себя остановился на распределённой БД, т.е.
2.1. на предприятиях есть БД с идентичной структурой
2.2. на БД прикручивается сервер приложений
2.3. на каждом предприятии клиенты ломятся на этот сервер
2.4. сервера взаимодействуют между собой и при
2.4.1. наличии необходимости
2.4.2. наличии прав на использование объектов

получается сквозная такая штука.

одно плохо: такую структуру я ещё успел реализовать. находится на стадии проекта, на который пока денег не дали.
full_lamer
Отправлено: 21.01.2005, 16:32


Машинист паровоза

Группа: Участник
Сообщений: 225



а какие каналы связи используешь?
далеко расположены подразделения?
у меня тоже проект назревает — общую большую едину БД по всем аспектам предприятия и оптимизировано для нашего предприятия. вот думаю как лучше организовать — репликациями или еще как...

Отредактировано full_lamer — 21/01/2005, 17:37
AVC
Отправлено: 21.01.2005, 16:51


Ветеран

Группа: Модератор
Сообщений: 1583



Сечас используется такой вариант
Головное предприятие решает разные задачи используя одни сервер БД.
Ближние подразделения (пока одно, как раз сейчас подключаем) работает с тем же сервером.
С дальними будем пробовать обмениваться только итоговыми выборками или репликации (пока в проекте).
Сервер приложений совмещен с сервером БД и как таковой отсутствует.
full_lamer
Отправлено: 24.01.2005, 11:36


Машинист паровоза

Группа: Участник
Сообщений: 225



а как например решать проблему распределения данных. например:
аппарат управления: имеется доступ ко всем данным;
гараж: нужен только список сотрудников и список автотранспорта;
склад: нужен только список сотрудников и список ТМЦ.
для каждого подразделения делать свой отдельный клиент или написать один общий — использующий мета-описания для форм и элементов интерфейса, и просто ставить его и передавать только мета-описания (по аналогии с 1С).

как Вы решаете эти проблемы.

Отредактировано full_lamer — 24/01/2005, 12:38
olegenty
Отправлено: 24.01.2005, 11:49


Ветеран

Группа: Модератор
Сообщений: 2412



связь по TCP/IP, основные подразделения-изготовители комплектующих — выделенка, сервисные центры — вероятно модемная связь. ещё один фокус — в основных подразделениях СУБД (вероятнее всего) MSSQL, сервисные цетнтры — однозначно FB. так что однозначно рулить всем этим будут сервера приложений в подразделениях. единственное, что будет гарантировано мной, как постановщиком (и разработчиком) и группой разработки — передача данных в едином для объекта формате. естетсвенно и специфичные типы данных по возможности использоваться не будут. а если да, их корректным превращением в локальный для СУБД подразделения формат будет заниматься сервер приложений подразделения, в зависимости от того, с какой СУБД работает (выполняя преобразование из единого формата передачи в локальный формат СУБД подразделения).
AVC
Отправлено: 24.01.2005, 12:26


Ветеран

Группа: Модератор
Сообщений: 1583



Один сервер. Пользователь работают непосредственно с сервером БД через клиента. Один общий универсальный клиент. Права розданы на сервере. Клиент сам подстраивает себя под права, работающего с ним пользователя. Аналогично с запросами (формами, отчетами) — все описания и правила взаимодействия / переходов на сервере. Клиент зачитывает и настраивает себя.

Так как правила и права на сервере, то, в общем случае, пользователь может работать через что угодно. Наш клиент предназначен только для удобства.
full_lamer
Отправлено: 24.01.2005, 12:31


Машинист паровоза

Группа: Участник
Сообщений: 225



QUOTE
Аналогично с запросами (формами, отчетами) — все описания и правила взаимодействия / переходов на сервере.

QUOTE
Так как правила и права на сервере, то, в общем случае, пользователь может работать через что угодно. Наш клиент предназначен только для удобства.

а в каком виде представлены правила и описания? тоже храняться в БД? или для них используется отдельные файлы описаний?
AVC
Отправлено: 24.01.2005, 13:36


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

в каком виде представлены правила и описания? тоже храняться в БД?

Конечно. Это Blob поля (CLob/Memo/...) специальных таблиц.
Для описания используется, в основном, язык SQL.
full_lamer
Отправлено: 25.01.2005, 09:34


Машинист паровоза

Группа: Участник
Сообщений: 225



а например имена таблиц, хп, функций, полей каким образом присваиваются? автоматически с ведением мета таблиц:
("таблица работники" — tab001 (tab001f001, tab001f002, ...), ...)
или же логические имена
(employers (id, fname, lname, ....), ....
спасибо.
AVC
Отправлено: 25.01.2005, 09:59


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

а например имена таблиц, хп, функций, полей каким образом присваиваются? автоматически ... или же логические имена ...

У меня — логические имена. Это же не система автоматического построения базы данных. Все таблицы, sp и прочее прорабатываются "вручную" — следовательно имена "с человеческим лицом". smile.gif
full_lamer
Отправлено: 25.01.2005, 10:25


Машинист паровоза

Группа: Участник
Сообщений: 225



QUOTE (AVC @ 25/01/2005, 11:01)
У меня — логические имена. Это же не система автоматического построения базы данных. Все таблицы, sp и прочее прорабатываются "вручную" — следовательно имена "с человеческим лицом". smile.gif

это все конечно понятно... удобнее работать с логическими именами. но я например последнее время избрал стратегию автоимен — правда пока еще эксперементирую: просто веду параллельно с разработкой БД таблицу имен. вообщем то удобно — заодно принудительно происходит составление инструции разработчика — на случай моей дезактивации wink.gif... правда волокиты больше... но это пока эксперимент...
AVC
Отправлено: 25.01.2005, 11:00


Ветеран

Группа: Модератор
Сообщений: 1583



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

Как показывает мой опыт написать громоздкий запрос с разными нюансами опытному человеку проще, чем заставить это сделать автоматическую систему.
(Вместо правил синтаксиса и имен полей/таблиц приходится помнить правила настройки системы построения — объем информации зачастую увеличивается)

Неплохой результат дают системы с первичной автоматической генерацией запросов и "доводкой" их руками.
olegenty
Отправлено: 27.01.2005, 08:02


Ветеран

Группа: Модератор
Сообщений: 2412



2 AVC — вот мне такой вариант, как у тебя, оч. нравится, но никак он у меня не получается: разные производители не договорятся о хранении своих данных физически на одном серваке )).
от всяческих репликаций/выгрузко-загрузок отказался сразу — никак не определить, какие данные отжно отдать, а какие нет. получается только сервер приложений.
full_lamer
Отправлено: 27.01.2005, 11:34


Машинист паровоза

Группа: Участник
Сообщений: 225



2olegenty
прошу прощение — я не совсем понял что ты имеешь в виду... такого вроде бы в ответах не было... или я опять чего-то не понял...
avc*
Отправлено: 27.01.2005, 12:28


Не зарегистрирован







QUOTE

разные производители не договорятся о хранении своих данных физически на одном серваке

А мы пока пользуемся преимуществом центральной конторы и навязываем подразделениям нужный нам способ. А кроме того из за специфики производства (энерго передающая компания) львиная доля запросов — просто просмотр.
olegenty
Отправлено: 27.01.2005, 16:54


Ветеран

Группа: Модератор
Сообщений: 2412



2 AVC — нам хуже. мы собираем автомобили, а нам, скажем, поставляют двигатель. и поставщик даже на просмотр глубины двигателя не отдаст...
хотя вариант влезания вглубь будет предусмотрен, при наличии договорённости.
а нужно это для осуществления сервисного обслуживания в случае наличия договора у сервисного центра и на осуществление ремонта двигателя (помимо автомобиля в целом)

2 full_lamer там был небольшой оффтопик. но вроде по теме.
AVC
Отправлено: 27.01.2005, 18:08


Ветеран

Группа: Модератор
Сообщений: 1583



olegenty Могу посочуствовать. sad.gif
full_lamer
Отправлено: 28.01.2005, 10:32


Машинист паровоза

Группа: Участник
Сообщений: 225



2olegenty — прошу прощения — просто не обратил внимания.

а Вы часто даете команду собирать статистическую информацию и команда dbcc shrinkdatabase?

кстати на Ваших предприятиях стоят БД документов? если да то какие? имеет ли смысл вести свою БД документов?
olegenty
Отправлено: 29.01.2005, 08:23


Ветеран

Группа: Модератор
Сообщений: 2412



заключен договор с Московской фирмой Софтинтегро на поставку ДокМенеджер. это плагин к Outlook (гуд для секретуток) + BPM на ЖЦ документа + БД по документообороту. вчера наконец-то познакомился с разработчиками и продуктом лично. дёшево и сердито. фирма наша, выпускники МИФИ (если не ошибся) собрались и стали писать софт. короче — чтобы не писать самим — рекомендую. если не планируется интеграция документооборота в производство, то это самое то. а если планируется... я вам не завидую... у нас внуьри цехов и сеть-то... так себе... и тогда проект выльется в немеряные бабки на технические средства. делать это только ради документооборота, есс-но, никто не будет.
СофтИнтегро работает с КамАЗом уже поболее 2-х лет, мы, как я понял, неплохо отбетатестили их продукт, а они учли в продукте наши пожелания, что были высказаны в процессе тестирования. ну и все довольны. да, и разработчики оставили по себе ощущение компетентности. лично на меня мало от общения с кем остаётся такое ощущение.

внедрение стартанёт в апреле.

Stacey.Kruchkova@softintegro.ru — Анастасия Крючкова, нач. отдела маркетинга
msokolov@softintegro.ru — основной разработчик

www.softintegro.ru — очевидно официальный сайт.
full_lamer
Отправлено: 29.01.2005, 09:44


Машинист паровоза

Группа: Участник
Сообщений: 225



2olegenty
это конечно большое спасибо за справку. я знаю просто 1С тоже предлагает подобное решение, которое интегрировано с оффисом, да моему и сама Микрософт тоже чтото подобное выпустила... проблема в том что часть документов очень тесно связана с производством...
но все равно спасибо за наводку.
olegenty
Отправлено: 29.01.2005, 10:54


Ветеран

Группа: Модератор
Сообщений: 2412



под "в производство" я имел в виду, что эта штука не интегрируется с PDM, т.е. цикл разработки КД->ТД->Подготовка производства не охватит вкупе с обслуживающей PDM CAD/CAE системой разработку документа (чертежа и технологической документации к нему). хотя сам цикл прохождения документа от конструктора на рабочее место у станка легко формализуется и автоматизируется ДокМенеджером (т.е. от кого кому дальше, что именно и в каком виде — это без вопросов. кому разослать после утверждения — тоже не вопрос, это делается на уровне управления бизнеспрцессом, где, в этом случае, бизнеспроцессом является жизненный цикл документа).

Вернуться в Работа с базами данных в C++Builder