powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Создание сервера приложений
25 сообщений из 440, страница 12 из 18
Создание сервера приложений
    #33320042
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я еще дальше пойду - напишу вкратце, как оно у нас, а вы уж покажите, в какое место нужно прикрутить ООП_чего-то_там.

Значит....
1. Список. Есть процедура TableNameLst, возможно с параметрами, которая приносит записи из таблицы. Форма с гридом, в котором колонки. Есть запрос exec TableNameLst, который в грид отдает результат. Все.
2. Единичная запись - просмотр, редактирование и т.д. ХП: TableNameGet @ID, приносит одну запись. На форме этот запрос, компоненты для просмотра и изменения данных полей записи. Все. Если есть связанные списки с этой записью из других таблиц - на закладках все они в виде списков.
3. Изменение единичной записи. Все на той же форме есть компонент с процедурами TableNameIns, TableNameUpd, которые вызываются исходя из того, добавили или меняли запись. Все.
4 и все остальное. Допустим хотим мы, чтобы для выбранной записи (в списке или при редактировании) чего-то произошло по нашему велению - кидаем на форму запрос типа exec TableNameDoSomething, передаем туда ID записи, параметры (если их задаем руками), исполняем. Все.

И? Куды тут ООП_механику_данных?

Еще раз замечу, чтобы не было отговорок: речь идет не об ООП вообще, а об вашей ООП_механике_данных_СУБД и только о ней.

-- Tygra's --
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33320161
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinАбсолютно не согласен. Вы опять посчитали только малую толику затрат. Т.е. Вы не приплюсовали стоимость разработки третьего звена, которое можно было бы и не использовать.
Т.е. вы хотите сказать, что для всех пользователей, имеющих доступ к системе, заведены логины к СУБД и все работает на row level security? Таким образом можно построть только довольно простую систему безопасности с кучей ограничений. А как насчет полноценной role based security с редактируемым списком прав для каждого объекта и наследованием этих прав?возможностью разрешать/запрещать, в общем внешне это очень похоже на права на файлы a-la права в NTFS... Реализуете это средствами СУБД?

tygraЯ еще дальше пойду - напишу вкратце, как оно у нас, а вы уж покажите, в какое место нужно прикрутить ООП_чего-то_там.

Тут трудно сказать в какое место надо ООП прикрутить, скорее надо все выкинуть и написать с использованием ООП, по-другому не получится :)

Дяя создания новой редактируемой таблицы вам придется создать новую форму, написать процедуры для получения информации/изменения/удаления и т.п.
Я могу описать, как это делается у меня.
Есть форма ObjectList, которая отображает объекты любого типа с возможностью сортировки, поиска, постраничного пролистывания и т.п.
В ее конструктор передается параметр типа IObjectType - это те самые метаданные типа, которые кэшируются в сервере приложений.
При изменении, добавлении конкретного объекта на основании этих метаданных автоматически генерится формочка для редактирования/добавления объектов, если есть ссылки на другие объекты, то в зависимости от настроек могут быть разные варианты выбора - или через аткую же форму ObjectList, или через выпадающий список и т.п. На крайний случай можно для какого-нибудь типа переопределить форму выбора элемента.
При удалении объекта автоматически на основании опять же метаданных о связях между объектами вычищаются или не вычищаются всязанные с ним объекты.
В общем, при добавлении нового типа в системе у меня уже есть готовый механизм для редактирования данных объектов этого типа, назначения прав на объекты этого типа и т.п. Писать какой-то код для этого в общем случае не требуется.
Это как раз хороший пример повторного использования кода, который дает ООП в общем и моя реализация в частности.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33320176
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет прав уточню - если речь идет о том, чтобы просто закрыть доступ ко всем таблицам и открыть только для хранимых процедур, в которые передавать всякие ID пользователя - такой вариант не катит. Это получается то же security на уровне приложения, только это приложение СУБД, а не промежуточного слоя. От моего варианта отличается только тем, что доступ к таблицам у вас закрывается на уровне СУБД, а у меня на уровне сервера приложений, других принципиальных отличий нет, так же как и нет отличий в трудоемкости реализации. Я не говорю про реализацию всего сервера приложений - он вообще-то не для этих целей создавался.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33320274
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТ.е. вы хотите сказать, что для всех пользователей, имеющих доступ к системе, заведены логины к СУБД и все работает на row level security? Таким образом можно построть только довольно простую систему безопасности с кучей ограничений.

Логины заведены для всех. Система безопасности очень сложная.

авторА как насчет полноценной role based security с редактируемым списком прав для каждого объекта и наследованием этих прав?возможностью разрешать/запрещать, в общем внешне это очень похоже на права на файлы a-la права в NTFS... Реализуете это средствами СУБД?

Именно такая система и есть. Практическая полная копия ACL винды. На счет средств СУБД:
-Членство в роли бд - это средство СУБД?
-Проверка принадлежности текущго пользователя к роли - это средство СУБД?
-Связывание таблиц с данными с таблицами ACL - это средства СУБД?


авторНасчет прав уточню - если речь идет о том, чтобы просто закрыть доступ ко всем таблицам и открыть только для хранимых процедур, в которые передавать всякие ID пользователя - такой вариант не катит.

Никаких ID пользователей в хп не передаются.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33320279
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ради интереса опишу как это делается у меня.

Для списка объектов у меня одна единственная форма на все приложение и если добавляются новые типы объектов, то с этой формой ничего делать не надо, тем более генерить что-то

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

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

Регистрация производится вызовом одной процедуры с минимум 2 параметрами
Класс и суперкласс
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33320299
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот насчет "А как насчет полноценной role based security с редактируемым списком прав для каждого объекта и наследованием этих прав?возможностью разрешать/запрещать, в общем внешне это очень похоже на права на файлы a-la права в NTFS... Реализуете это средствами СУБД?" могу сказать точно - реализуется, так как проектировал это сам. Права на методы, свойства, отчеты, приложения, которые могут работать с БД (т.е. SQLNavigator не пройдет) и прочее прочее прочее.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33320377
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хорошо, определенная часть системы security ложится на плечи СУБД, что ее немного упрощает. Но для меня например неприемлемым является невозможность использования Dynamic SQL в хранимых процедурах. У меня система security не завязана на security СУБД, но по возможностям аналогична.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33320436
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladiChНо для меня например неприемлемым является невозможность использования Dynamic SQL в хранимых процедурах.

Я все-таки использую динамический SQL, но только для работы с временными таблицами для построения cross-tab отчетов. ;)
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33320620
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот, у всех почти одинаково.
Только у одних автоматически что-то генерится, а у кого-то вручную, но результат тот же - те же формы, те же процедуры.

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


VladiChЕсть форма ObjectList, которая отображает объекты любого типа с возможностью сортировки, поиска, постраничного пролистывания и т.п.
В ее конструктор передается параметр типа IObjectType - это те самые метаданные типа, которые кэшируются в сервере приложений.
При изменении, добавлении конкретного объекта на основании этих метаданных автоматически генерится формочка для редактирования/добавления объектов, если есть ссылки на другие объекты, то в зависимости от настроек могут быть разные варианты выбора - или через аткую же форму ObjectList, или через выпадающий список и т.п. На крайний случай можно для какого-нибудь типа переопределить форму выбора элемента.
Тут я только не понял - у вас форма на лету создается в процессе выполнения приложения или все же на стадии разработки?
Ну и форма ObjectList - она вроде как одна на всех. А фильтры? Динамически?

-----------

Но вообще, сейчас к нам вернулся старый товарищ на работу, он разработчик системы ВЕРО - единый реестр объектов. Вот там все автоматизировано на полную катушку - список объектов единый, от него наследуются почти все сущности, есть типы объектов, которые так-же могут наследоваться друг от друга и от них зависит много чего. Система мощная, на объект можно навесить все, что захочется - все это настраивается, так же может быть множество атрибутов (тоже настраивается), независимо от объекта есть универсальные методы, есть собственные, есть мощная система статусов, есть система прав - как общая, так и на конкретный объект - и вся она на базе СУБД.
Но все это делается средствами СУБД, клиент как всегда только отображает и кое-что универсализирует в смысле интерфейса.

Когда ее пойму (когда время будет), смогу лучше рассказать, а пока что если только где в инете информация есть.

-- Tygra's --
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33320702
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraТут я только не понял - у вас форма на лету создается в процессе выполнения приложения или все же на стадии разработки?
Ну и форма ObjectList - она вроде как одна на всех. А фильтры? Динамически?

Вы про форму редактирования? Да, форма в процессе выполнения приложения создается. Фильтры тоже создаются динамически.

tygraНу вот, у всех почти одинаково.
Только у одних автоматически что-то генерится, а у кого-то вручную, но результат тот же - те же формы, те же процедуры.

Ну так в этом и есть главное отличие - много писать кода или мало, проще поддерживать или сложнее. Все это ведь не ради каких-то метафизических премуществ создавалось или моды, а ради того, чтобы систему проще было расширять и поддерживать.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33320715
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraНо вообще, сейчас к нам вернулся старый товарищ на работу, он разработчик системы ВЕРО - единый реестр объектов. Вот там все автоматизировано на полную катушку - список объектов единый, от него наследуются почти все сущности, есть типы объектов, которые так-же могут наследоваться друг от друга и от них зависит много чего. Система мощная, на объект можно навесить все, что захочется - все это настраивается, так же может быть множество атрибутов (тоже настраивается), независимо от объекта есть универсальные методы, есть собственные, есть мощная система статусов, есть система прав - как общая, так и на конкретный объект - и вся она на базе СУБД.
Но все это делается средствами СУБД, клиент как всегда только отображает и кое-что универсализирует в смысле интерфейса

Ну собственно моя система сильно похожа на то, что вы описали, и довольно много работы в ней также делается в СУБД. Список объектов единый, от него наследуются все сущности, ну и все остальное тоже. Я думаю у Old Nick все по аналогичным принципам построено. Единственно - наследование бизнес-логики делать на уровне СУБД - на эту тему я уже высказывался - это на мой взгляд ненужное извращение.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33320950
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тут видите - взгляды наши не совпадают

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

-- Tygra's --
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33321176
ООП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Значит....
автор1. Список. Есть процедура TableNameLst, возможно с параметрами, которая приносит записи из таблицы. Форма с гридом, в котором колонки. Есть запрос exec TableNameLst, который в грид отдает результат. Все.
2. Единичная запись - просмотр, редактирование и т.д. ХП: TableNameGet @ID, приносит одну запись. На форме этот запрос, компоненты для просмотра и изменения данных полей записи. Все. Если есть связанные списки с этой записью из других таблиц - на закладках все они в виде списков.
3. Изменение единичной записи. Все на той же форме есть компонент с процедурами TableNameIns, TableNameUpd, которые вызываются исходя из того, добавили или меняли запись. Все.
4 и все остальное. Допустим хотим мы, чтобы для выбранной записи (в списке или при редактировании) чего-то произошло по нашему велению - кидаем на форму запрос типа exec TableNameDoSomething, передаем туда ID записи, параметры (если их задаем руками), исполняем. Все.

И? Куды тут ООП_механику_данных?

Еще раз замечу, чтобы не было отговорок: речь идет не об ООП вообще, а об вашей ООП_механике_данных_СУБД и только о ней.

Если в вашей системе завести 3 документа (накладная, заявление об увольнении, прием на работу) - то это будет 3 разных таблицы (как и у других). Теперь для того, чтобы реализовать операцию "Подпись" вы создадите 3 ХП Table1SignDoc/Table2SignDoc/Table3SignDoc и в каждой напишите приблизительно один и тот же код с точностью до имени таблицы.
Нужно будет доавить вторую подпись - на море по колено - продублируем
все ХП еще один раз.

Тогда как в ОО вы ОДИН раз напишите логику подписи документа и будете вызывать везде ОДИН базовый метод для ВСЕХ документов системы.

Вообще, непонятна ваша логика - на GUI ООП это круто, а для БЛ логики нет. Почему? Чем вдруг формы, контролы и работа с ними сильно отличаются от документов, клиентов и т.п.??? Такие же объекты, у которых функциональность пересекается из-зи чего удобно использовать наследование и полиморфизм при работе с ними.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33321205
ООП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2tygra:
Еще представьте, что Borland написал бы VCL по вашим правилам - на каждый контрол
ControlNameSetSize
ControlNameGetSize
ControlNameSetWith
ControlNameGetWidth
и т.п.
Для каждого нового пришлось бы написать ручками все методы. Ваше решение - полный аналог.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33321393
Mainframe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Terrorist Есть текст для, например, вопроса. Что с ним сделать для отображения нужно, что бы он был готов? Пожарить? :)
Долго писать, но можете, если интересно, прочитать стандрат IMS QTI на
imsorg .
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33321712
Инженер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ООПЕсли в вашей системе завести 3 документа (накладная, заявление об увольнении, прием на работу) - то это будет 3 разных таблицы (как и у других). Теперь для того, чтобы реализовать операцию "Подпись" вы создадите 3 ХП Table1SignDoc/Table2SignDoc/Table3SignDoc и в каждой напишите приблизительно один и тот же код с точностью до имени таблицы.
Нужно будет доавить вторую подпись - на море по колено - продублируем
все ХП еще один раз.

Вообще-то, можно и не так.
Если механизм "подписывания в базе" для записей разных таблиц одинаков, то я создам одну процедуру и "имя таблицы" передам в нее параметром.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33321720
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще есть понятие "генерация SQL скриптов по шаблону". Так что никто ничего по 100 раз в коде не дублирует, пишем однотипный шаблон, по нему собираются нужные скрипты, процедуры, триггеры и прочее.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33321788
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ООП

Да вам, товарищ, на sql да и вообще с СУБД научиться работать бы надо - хотя бы вообще работать, а потом уж хорошо работать. А вот потом уже можно начинать комментировать - тогда не получится тот бред, который вы тут написали.

Если разработчик не идиот, то он создаст одну базовую таблицу - документ, от которой наследуются остальные - заявления, накладные и т.п. И подпись будет ставиться на базовом документе - потому дергать будет разработчик_не_идиот одну процедуру SignDocument.
Для воторой подписи соответственно создадим поле в базовой таблице и т.д. (см. выше)

Так что пока не выучите sql и архитектуру создания кс систем - лучше не выражайте ваши фантазии, а то блин вот такие понасоздают систем, а потом орут: sql фигня, ничего сделать нельзя, в процедурах нельзя разобраться...

Твою маман....

-- Tygra's --
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33321814
Инженер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С интересом прочитал всю тему.

Предалагю все же разделять два вопроса:
а) создание многозвенных приложений
б) вынос бизнес-логики за СУБД (в моем понимании, именно для этого и создается сервер приложений)

Многозвенка, по-моему, имеет смысл на существование. Легко могу представить себе что в некоторых случаях это бывает необходимо. Только в этой ветке приводились примеры:
- целесообразно вынести какую-либо обработку "единицы" данных в спец. приложение (пример с использованием фотошопа для какой-либо обработки данных из базы)
- необходимо обрабатывать всю инфу от СУБД к клиенту, т.е. вариант "толстого драйвера" (например, шифрование или какое-нибудь "хитрое" сжатие).

Что касается сервера приложений, то тут пока я видел только два примера, для которых такой подход м.б. применим:
- работа с геторогенными БД (создание СП м.б. эффективней некой консолидации)
- ограничение на макс. кол-во пользователей (хотя это не совсем укладывается в вынос БЛ) Тут, скорее всего, речь будет идти о неправильно выбранной СУБД для данной задачи.

Еще могу себе представить вынесение "оберток" в некий промежуточный слой - упрощается создание разнородных клиентских приложений к одной БД. Но опять же, это не является необходимостью выноса БЛ за пределы БД.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33321825
Инженер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ограничение на макс. кол-во пользователей (хотя это не совсем укладывается в вынос БЛ) Тут, скорее всего, речь будет идти о неправильно выбранной СУБД для данной задачи.

если таки подумать :D, то БЛ опять же остается в БД. И это вырождается в вариант "толстого драйвера"
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33321964
ООП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2tygra:
авторЕсли разработчик не идиот, то он создаст одну базовую таблицу - документ, от которой наследуются остальные - заявления, накладные и т.п. И подпись будет ставиться на базовом документе - потому дергать будет разработчик_не_идиот одну процедуру SignDocument.
Для воторой подписи соответственно создадим поле в базовой таблице и т.д. (см. выше)

Гениально! На каждый уровень иерархии объектов системы мы создадим по таблице.
У нас будет 1 таблица с ИД и номером, потом таблица с подписями, еще одна для базовых документов с контрагентами и т.п. При выборке одного документа мы будем делать JOIN из N таблиц. А базовая у нас будет содержать миллионы записей и любой запрос по любому документу будет обязательно шариться по ней. И это все для того, чтобы доказать, что ООП на сервере не нужен.
Прогрессивный подход к построению КС систем.

2 ACRUS и Инженер:
То, что вы предлагаете и есть один из вариантов надстройки над СУБД. Просто у вас она реализована средствами самой СУБД. Д.Сорокин приводил пример аналогичной надстройки, выполненной на .Net. В случае .Net большую часть того, что вам приходится писать самим - а именно хранение иерархии таблиц, выбор нужной таблицы для выборки (полиморфизм) и т.п. вы получаете "бесплатно" за счет использования ОО языка. Собственно, про это я и говорю.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33322075
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ООПГениально! На каждый уровень иерархии объектов системы мы создадим по таблице.
У нас будет 1 таблица с ИД и номером, потом таблица с подписями, еще одна для базовых документов с контрагентами и т.п. При выборке одного документа мы будем делать JOIN из N таблиц
Вы правда идиот или просто прикидываетесь?

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

авторА базовая у нас будет содержать миллионы записей и любой запрос по любому документу будет обязательно шариться по ней.
А вот это правда - так обычно и делают, если используют именно такую архитектуру. Так работает система ВЕРО, причем в нескольких крупных предприятиях с огромным количеством данных - и работает хорошо. Просто нужно руки прямые иметь и знать, чего делаешь, но вам этого не понять :)

авторИ это все для того, чтобы доказать, что ООП на сервере не нужен.
Нет, это все для того, чтобы хорошо все работало. А ООП на сервере нет ни у нас, ни у вас, потому что его там просто нет :)) Используйте FastObjects - там вам будет полное ООП, по самое нихочу.

авторПрогрессивный подход к построению КС систем.
Конечно. У вас то его вообще нет - подхода, до сих пор все на клиенте делаете. Хотя может и вообще ничего не делаете - судя по постам. Может вы просто дворником в ИТ конторе работаете? Слышите иногда разговоры программеров - вот и нахватались "знаний"

автор2 ACRUS и Инженер:
То, что вы предлагаете и есть один из вариантов надстройки над СУБД. Просто у вас она реализована средствами самой СУБД. Д.Сорокин приводил пример аналогичной надстройки, выполненной на .Net. В случае .Net большую часть того, что вам приходится писать самим - а именно хранение иерархии таблиц, выбор нужной таблицы для выборки (полиморфизм) и т.п. вы получаете "бесплатно" за счет использования ОО языка. Собственно, про это я и говорю.
Это не надстройка - это работа с СУБД, только правильно, по человечески, с пониманием и знанием СУБД и ее возможностей.
А хранение иерархии таблиц и т.п. - это ненужная муть, вытекающая из того, что с уровня разработки клиента на уровень разработки сервера перейти у вас нет желания и умения. Иначе не писали весь этот бред.

-- Tygra's --
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33322548
Инженер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ООП2tygra:
У нас будет 1 таблица с ИД и номером, потом таблица с подписями, еще одна для базовых документов с контрагентами и т.п. При выборке одного документа мы будем делать JOIN из N таблиц. А базовая у нас будет содержать миллионы записей и любой запрос по любому документу будет обязательно шариться по ней[/quote]
Даже в таком :) варианте, при условии грамотных индексов и запросов работать будет быстро. Я бы даже рискнул сказать ОЧЕНЬ быстро :)


[quot]
То, что вы предлагаете и есть один из вариантов надстройки над СУБД. Просто у вас она реализована средствами самой СУБД. Д.Сорокин приводил пример аналогичной надстройки, выполненной на .Net. В случае .Net большую часть того, что вам приходится писать самим - а именно хранение иерархии таблиц, выбор нужной таблицы для выборки (полиморфизм) и т.п. вы получаете "бесплатно" за счет использования ОО языка. Собственно, про это я и говорю.

Я еще раз предлагаю разделять использование "обертки" и использование СП с вынесенной в него БЛ.
При определенных обстоятельствах я "ЗА" обертки. Но использование СП для меня пока остается загадкой.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33322555
Инженер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ООПУ нас будет 1 таблица с ИД и номером, потом таблица с подписями, еще одна для базовых документов с контрагентами и т.п. При выборке одного документа мы будем делать JOIN из N таблиц. А базовая у нас будет содержать миллионы записей и любой запрос по любому документу будет обязательно шариться по ней
Даже в таком :) варианте, при условии грамотных индексов и запросов работать будет быстро. Я бы даже рискнул сказать ОЧЕНЬ быстро :)

То, что вы предлагаете и есть один из вариантов надстройки над СУБД. Просто у вас она реализована средствами самой СУБД. Д.Сорокин приводил пример аналогичной надстройки, выполненной на .Net. В случае .Net большую часть того, что вам приходится писать самим - а именно хранение иерархии таблиц, выбор нужной таблицы для выборки (полиморфизм) и т.п. вы получаете "бесплатно" за счет использования ОО языка. Собственно, про это я и говорю.
Я еще раз предлагаю разделять использование "обертки" и использование СП с вынесенной в него БЛ.
При определенных обстоятельствах я "ЗА" обертки. Но использование СП для меня пока остается загадкой.
...
Рейтинг: 0 / 0
Создание сервера приложений
    #33322695
Terrorist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторУ нас будет 1 таблица с ИД и номером, потом таблица с подписями, еще одна для базовых документов с контрагентами и т.п. При выборке одного документа мы будем делать JOIN из N таблиц. А базовая у нас будет содержать миллионы записей и любой запрос по любому документу будет обязательно шариться по ней

Да. Именно так и должно быть.
Представьте, как в системе с отдельными таблицами для каждого документа, сделать такую операцию: "удалить все документы подписанные мистером ВВП"
Придеться, сканировать N таблиц и чётко знать сколько таких таблиц есть и генерить динамический СКЛ!

В случае одной базовой таблицы, для общих свойств всех документов, выполняется один СКЛ оператор, все связанные таблицы могут удалить записи ссылающиеся на базовые автоматически. И при этом совершенно не важно сколько у нас типов разных документов и где еще хранятся их атрибуты.
...
Рейтинг: 0 / 0
25 сообщений из 440, страница 12 из 18
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Создание сервера приложений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]