Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Где живешь? Если в СПБ, то нет проблем ___________________________ До столиц "только самолетом можно долететь" (песня) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2004, 15:00 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Сейчас не стану выкладывать. Допишу прикладное приложение, потом уже обкатанное ядро выложу на просмотр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2004, 15:28 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
В таких "объектных" расширениях (интерфейсах) есть по крайней мере две проблемы: 1) Обращение к SQL серверу возвращает таблицу, значит для выборки всех полей объекта необходимо многократно обращаться к серверу. 2) Применяется (однопользовательский\локальные данные) подход, (многопользовательский\удаленные данные) имеет большие накладные расходы, и работать с ним нужно по другому - (а) более экономно к запросам, (б) данные на сервере могут меняться другими пользователями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2004, 13:46 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
В таких "объектных" расширениях (интерфейсах) есть по крайней мере две проблемы: 3) И главное - вопрос масштабирования таких систем - для каких систем это праедназначено ? - явно не для малых, где простые таблицы проще, - для больших систем - сложность приведет к потере контроля над обменом с сервером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2004, 18:41 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Наверняка подобная идея посещала 99% разработчиков баз данных. Однако в поцессе ее реализации выясняется, что подобная схема годится только для работы с таблица-справочниками, создание которых по моим прикидкам занимает не более 1 процента времени разработки. Ну и стоит ли огород городить? Написание 3 хп на выборку, обновление | вставку и удаление; и одной формы для выборки-обновления-вставки занимает минут 15-20. А для создания сложных выборок по соединения нескольких таблиц такая схема абсолютно бесполезна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2004, 23:37 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Привет, а как в вашей объектной системе реализованы вложенные объекты? (например: приходная накладная имеет ссылку на контрагента...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2004, 04:33 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
>1) Обращение к SQL серверу возвращает таблицу, значит для выборки всех >полей объекта необходимо многократно обращаться к серверу. Это если нужно многократно обращаться к серверу. >2) Применяется (однопользовательский\локальные данные) подход, >(многопользовательский\удаленные данные) имеет большие накладные >расходы, и работать с ним нужно по другому - (а) более экономно к >запросам, (б) данные на сервере могут меняться другими пользователями. Моя система сделана на основе системы Онтарио. Я ее расширил, хотя и некоторые вещи переписал. Но существенного изменения нет, просто несколько автоматизировал разработку. Так вот 1. Количество объектов 500 000 записей 2. Количество прав объектов 2 000 000 записей 3. Количество записей в регистре проводок. 8 000 000 4. Таблиц всего 300 штук. Классов чуть больше 100. Процедур 3000 штук. 5. Количество пользователей ~ 50. Это на одной базе. А все баз 6 штук в разных регионах страны. Репликация по каналу интернет идет каждые 2 минуты. Моя система в худшем случае понизит производительность на 20% из-за вытаскивания метаданных перед данными. >А для создания сложных выборок по соединения нескольких таблиц такая >схема абсолютно бесполезна. Сложные выборки и простые выборки делаются только на реляционном языке, поэтому нет никаких ограничений и сложностей. Для примера приведу код вытаскивания вложенного датасета для документа. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Объекты на клиенте, представлены в виде прокси, т.е. только то что нужно для их идентификации. Это наименование, чтобы показывать в контролах, класс чтобы знать какие метаданные вытаскивать и идентификатор (понятно зачем). >Привет, а как в вашей объектной системе реализованы вложенные объекты? >(например: приходная накладная имеет ссылку на контрагента...) Выше привел пример датасета (многострочная часть документа). Чтобы открыть объект учета для просмотра, пишем: var dbo: TDBObject; begin dbo := TDBObject.Create(DBObject.DataSet['Things'].Field['ThingClass'].AsString); dbo.Retrieve(DBObject.DataSet['Things'].Field['ThingOID'].AsInteger); dbo.Execute('View'); end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2004, 11:34 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Набросал доку по своей системе. Кому интересно присылайте мыло, отвечу всем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2004, 19:25 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Подход хороший, а главное рабочий. Мы его почти 10 лет используем с MS SQL 6.0 http://www.ivn.newmail.ru/ultima3.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 00:04 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Знаю я Ультиму :-) Ваши траблы я повторять не стал. Привет Сергею Тарасову. Я его систему развиваю. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2004, 00:46 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Оригинально и красиво решил проблему ссылочной целостности в своей системе. Раньше на каждое поле, являющееся ссылкой на объект, нужно было писать процедуру типа DBODoc_D_DBOState, которую вызывал специальный механизм при удалении объекта, это было очень неудобно, так как нельзя было забывать писать для каждого такого поля процедуру. Да и само написание тоже минус, т.к. приводит к затратам времени. Сделал все через метаданные. При регистрации класса в базе добавляется пользовательский тип основанный на int и имеющий название аналогичное классу, например DBODoc, теперь скрипт создания таблицы документов выглядит так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. теперь при удалении объекта "Состояние документа" можно по метаданным найти все таблицы где есть поля этого класса и его наследников, проверить есть ли в этих полях ссылка на удаляемый объект и если есть, то по типу поля OID взять описание класса и ругнуться что в данном объекте есть ссылка на удаляемый объект и удаление отменяется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 16:12 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
мне интересно. если возможно, вышли на del_nero at pisem.net ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 14:09 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Еще кое-что на тему на сайте dbobjects.boom.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2004, 14:43 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Выложил исходники на сайте http://dbobjects.boom.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2004, 18:43 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
2 Old Nick >В Оракле например, если создать тип объект унаследованный, то создать таблицу по нему > нельзя. Как это называется. Нахрена тогда наследование? Уж лучше на джаве тогда писать в Oracle c 9.2 нормальное наследование и отличный полиморфизм. И таблицу можно по унаследованному объекту создавать и методы наследуются и прекрасно работают. Более того, имеет место реализация расширения и сужения объектных типов. И т.д. и т.п. Только множественного наследования нет, но это и к лучшему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 01:19 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Ну кое-какие ограничения, т.е. "невозможности" в работе с объектными типами Oracle 9i остаются: http://www.sql.ru/forum/actualsearch.aspx?search=%EA%EE%ED%F1%F2%F0%F3%EA%F2%EE%F0&a=Denis+Popov&ma=1&bid=3&dt=-1&s=1&so=1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 11:17 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Ущербный какой-то этот Оракл. Я знал про объекты в нем, вернее про то как они там реализованы, поэтому и не стал его использовать. Лучше взять чистую реляционную СУБД и сделать объект на MIDDLE WARE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 12:06 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Old Nick Чем лучше то? Тем что огромное количество ресурсов тратится на перемещение данных между БД и app server'ом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 14:32 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Это большая ошибка, когда проектируют так что данными манипулирует AppServer. Он должен предоставлять интерфейс клиенту и через него манипулировать методами. А данные вытаскивать только в том случае, если их клиент запрашивает для отображения или изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 15:08 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
2 Old Nick решил посмотреть: описания не скачиваются, а что скачивается -не распаковывается поэтому, если не лень, поясните еще раз на пальцах: как я понял: Есть конструктор объектов, которые хранятся на Сервере Клиент на Дельфи : создаем TDBObject, связываем с хранилищем на Сервере и имеем форму для редактирования данных и нарисуйте схему, все-таки коммерческий продукт:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 20:01 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
и что в итоге? Hibernate? которому пофиг какая база, и для которого есть Middlegen чтобы из существующей структуры сделать XML файлы с описательными метаданными, с кешированием и работой в кластере, плюс практически продакшн стандарт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2004, 00:35 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Old Nick Пока это только слова. А хотелось бы более предметно. Например, есть класс MyClass с атрибутами Attr1,.. AtrN и операциями. Что в данном случае будет представлять ваш DBObject? Я так понимаю что-то типа такого Код: plaintext 1. 2. 3. 4. Операций я так понимаю не будет? Или они будут сделаны через какой-то контейнер для TStoredProc?Ну и почему такую конструкцию легче держать на клиенте чем на сервере (для Oracle >=9.2). Ведь по-крайней мере вашей БД не всегда можно будет воспользоваться напрямую (в РБД нет полисорфизма)! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2004, 10:07 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Люди, вы заложники своих стереотипов. Данными манипулировать должны только хранимые процедуры или SQL. А компонент на среднем звене должен представлять собой обертку вокруг разрозненного набора таблиц и процедур, чтобы превратить все это в целостную логическую единицу, представляющую собой сущность, которая может не только иметь данные и операции, но интерфейс для работы с ними. Мой компонент управляет хранимыми процедурами (серверная часть) и формами (клиентская часть). Сейчас я делаю подробное описание, как с помощью моего ядра сделать прикладное приложение. Это упрощенная клиентская база. Когда будет готово сообщу. Увидите как все просто. P.S. Я не понимаю зачем в некоторых архитектурах вытаскивают на среднее или клиентское звено таблицу, пересчитывают в ней какие-то данные пусть даже красиво с помощью классов сущностей и потом отправляют обратно на сервер. В какой роли тогда выступает сервер, в роли хранилища? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2004, 12:26 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Я перенес сайт на dbobjects.narod.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2004, 12:28 |
|
||
|
Люди, свершилось. Я сделал объектное ядро
|
|||
|---|---|---|---|
|
#18+
Old Nick Данными манипулировать должны только хранимые процедуры или SQL. Я это не утверждал и не опровергал. Мои стереотипы говорят мне, что операции класса логично разделить на две группы - те что эффективно реализовать на сервере и те что на клиент :) А компонент на среднем звене должен представлять собой обертку вокруг разрозненного набора таблиц и процедур, чтобы превратить все это в целостную логическую единицу, представляющую собой сущность, которая может не только иметь данные и операции, но интерфейс для работы с ними. На мой взгляд эта фраза и отражает суть. Т.е. ваше "ядро" призвано объединить разрозненную информацию об объекте (т.е. его методы, некоторые связи и еще какую-то метаинформацию) в то с чем проще работать (даже не проще - а "целостнее" что-ли) Ничего неправильного в этом нет (imho это правильно) - другой вопрос, что и под объектно-ориентированным обычно понимается нечто другое - в частности, как я понял, ваша "целостная логическая единица" не обладает состоянием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2004, 12:38 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=32495950&tid=1545838]: |
0ms |
get settings: |
15ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
140ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
105ms |
get tp. blocked users: |
2ms |
| others: | 275ms |
| total: | 577ms |

| 0 / 0 |
