Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
Да собственно у меня ядро системы тоже по большей части готово + готов инструмент для создания новых типов и объектов. Редактирование объектов точно также реализуется автоформами. Вообще у меня возникло впечатление, что наши системы довольно похожи по структуре. Просто решил поинтересоваться опытом в создании и эксплуатации подобных систем и как они работают с большими объемами данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2005, 20:15 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
А что дальше? Что планируете делать с этой системой. Я вот доведу до минимального товарного вида и попытаюсь в инете продавать. Может инвестора для коробочного варианта найду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2005, 20:24 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
А у нас собственно есть инвестор, на чьи деньги она и пишется. Первая версия писалась для внутренних нужд, новую собираемся продавать. Продавать что-то коробочное на российском рынке очень тяжело, а системы такого рода вообще нереально. Можно продавать внедрения таких систем, чем мы и собираемся заниматься. Есть уже наработанная функциональность для CMS, зачатков документооборота и CRM. Они реализованы для старой версии системы, где маппинг производился вручную, теперь стоит задача перенести их на новую версию. Вы если не ошибаюсь, уже около года доводите свою систему до товарного вида? За это время так ничего и не получилось? Если система действительно стоящая, то думаю можно было бы на ее внедрениях и консалтинге попробовать что-то заработать, а саму систему сделать opensource'ной. Но для этого нужно еще и соответствующую функциональность реализовать и организационно это все оформить. Продавать коробку без серьезных вложений в ее продвижение не получится, а не имея опыта в таких делах почти 100% вероятность что эта затея провалится. У нас практически нет рынка для таких продуктов. Есть рынок внедрения CRM, CMS, ERP, документооборота и т.п. Если организуете сеть партнеров по принципу 1С, тогда можно будет говорить о продаже коробок :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2005, 20:45 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
VladiChДа, еще - атрибуты объекта организованы в дерево, а не простым списком, что тоже непонятно как реализовать в обычном ORM. А с этого места по подробнее пожалста можно? Я немного не допонимаю что значит VladiChорганизованы в дерево Это когда атрибуты класса- потомка наследуют атрибуты класса-предка или Вы нечто иное подразумеваете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2005, 11:17 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
К сожалению, делаю я это в одиночку и по одному-два часа в неделю. Иногда даже по месяцу не подхожу. Времени нет. В интернете я выложу версию с автоформами как опенсорс, а плагин в виде разработки кастомных форм буду продавать за деньги. Надеюсь таким образом получить распространение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2005, 13:10 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
Нет, это значит что например есть тип Документ, в его подтипах информация организована иерархично, т.е. есть заголовок, внутри него какие-то атрибуты, в теле документа несколько блоков, в которых также могут быть вложенные блоки и т.п. То есть набор атрибутов представляет собой некий древовидный шаблон документа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2005, 13:15 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
VladiChORM обычно используется как порождение структуры базы данных на основе классов, здесь ситуация противоположная - существующие сущности в базе данных маппятся на классы, которые можно или автоматически генерировать или писать вручную. Нет, многие продукты позволяют производить как прямой (классы --> схема БД), так и обратный инжиниринг (схема БД --> классы). С разной степенью автоматизма: от полного до ручного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2005, 13:41 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
TemplarНет, многие продукты позволяют производить как прямой (классы --> схема БД), так и обратный инжиниринг (схема БД --> классы). С разной степенью автоматизма: от полного до ручного. Да я собственно в курсе, что позволяют, причитайте внимательно - обычно используется . В тех ORM, которые я смотрел, функциональность "обратного инжениринга" плохо подходит для нашей задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2005, 13:51 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
VladiCh аблица, в которой хранятся OID объектов - это таблица базового типа. Таблицы дочерних типов относятся к ней 1-1. Как навешать на это все обычный OR-маппинг? Интересно и какие ORM вы изучили чтобы делать выводы о невозможности их использования в вашей задаче? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2005, 15:36 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
VladiCh Насколько будет замедляеться вставка в таблицу, при возрастании количества отношений один-к-одному к ней? Насколько быстро выполняется выборка из таблиц, связанных по ключу при отношении один-к-одному (скажем по отношению к один-ко-многим - также, быстрее, медленнее)? Насколько серьезно все это будет тормозить при возрастании количества данных? При вставке в базовую таблицу вставка замедляться не будет (что очевидно), сколько бы на нее ссылок из других таблиц не было... Замедляться будут операции приводящие к изменению ее первичного ключа (в том числе удаление) PS Вообще интересные у вас вопросы... на сколько? на сколько чего? Спросили бы тогда насколько РСУБД быстры... или что-нибудь в этом духе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2005, 15:44 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
funikovyuri VladiCh аблица, в которой хранятся OID объектов - это таблица базового типа. Таблицы дочерних типов относятся к ней 1-1. Как навешать на это все обычный OR-маппинг? Интересно и какие ORM вы изучили чтобы делать выводы о невозможности их использования в вашей задаче? Пожалуйста не вырывайте мои слова из контекста и прочитайте внимательнее исходное сообщение. Там говорилось не только про отношения 1 к 1. Еще я говорил не про невозможность, а про то, что они плохо подходят для этой задачи. Смотрел я nHibernate, atoms framework, xpress persistent objects. критерием выбора была бесплатность или низкая стоимость соответствующих инструментов. По поводу вопросов - я не просил дать какую-то объективную оценку в секундах, порядках и т.п., просто спрашивал мнение людей, делавших что-то подобное. В чем это выразить - на ваше усмотрение. Можно это выразить например в сравнении с каким-нибудь другим вариантом реализации наследования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2005, 16:01 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
VladiCh ну так почитайте про другие варианты реализации наследования... их всего 3 ну и насчет орм - я так и не понял какие ваши необычные архитектурные решения препятствуют их использованию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2005, 16:07 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
Разумеется я читал про разные варианты реализации наследования. Просто читать - это одно дело, а реальный опыт использования - другое. Хотел я услышать именно про примеры использования. Препятствует использованию orm разделение атрибутов объектов на две группы. Атрибуты одной группы хранятся в связанной с типом таблице. Атрибуты другой группы (как правило это текстовые атрибуты) - в отдельной таблице. В этой таблице хранятся атрибуты этой группы для всех типов. Каким образом реализовать такую модель при помощи orm? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2005, 16:23 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
>>ну так почитайте про другие варианты реализации наследования... их всего 3 funikovyuri, а какой третий вариант реализации наследования? Я знаю всего два: 1) связь 1-к-1 - атрибуты не дублируются в производных сущностях 2) дублирование атрибутов в производных сущностях, union и т.п. ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 16:18 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
1. Таблица на каждый класс (Class table inheritance) - хранятся только свои атрибуты, родительские достаются через отношение 1 к 1. 2. Таблица на каждый конкретный класс (Concrete table inheritance). - копирование атрибутов родителя в подклассах. 3. Таблица на иерархию классов (Single table inheritance) - когда все атрибуты всех классов хранятся в одной таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 16:50 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
Ну и еще можно например 1 и 3 подходы смешивать в пределах разумного, т.е. делать одну таблицу на небольшую иерархию классов, а эту иерархии могут наследоваться от одного предка как class table inheritance ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 16:55 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
>>>3. Таблица на иерархию классов (Single table inheritance) - когда все атрибуты всех классов хранятся в одной таблице. Третий вариан как к таковому способу реализации наследования никакого отношения не имеет - это скорее структура/способ реализации ООП подхода, причем самый худший из всех, так как раскрутить и поддерживать это безобразие из 3-x таблиц объект-атрибут-значение очень и очень непросто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 16:56 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
Ну так тогда и второй вариант не имеет отношения к способу реализации наследования (по вашей логике) - это тоже структура-способ реализации ООП подхода. На самом каждый из них в конкретной ситуации имеет свои преимущества и недостатки и имеет право на жизнь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 17:04 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
VladiChПрепятствует использованию orm разделение атрибутов объектов на две группы. Атрибуты одной группы хранятся в связанной с типом таблице. Атрибуты другой группы (как правило это текстовые атрибуты) - в отдельной таблице. В этой таблице хранятся атрибуты этой группы для всех типов. Каким образом реализовать такую модель при помощи orm? Руками описать маппинг для каждого класса. Упомянутые вами nHibernate и XPO это позволяют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 17:05 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
>>>Руками описать маппинг для каждого класса. Упомянутые вами nHibernate и XPO это позволяют сомневаюсь, существующие средства маппинга работают по 1 или 2 варианту, а тут видимо смесь 1-го и 3-го. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 17:16 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
Вот поэтому я и написал что плохо подходит. Классы у нас может создавать обычный (ну почти обычный) пользователь. Перекомпиляции приложения для этого не требуется. Атрибуты добавлять тоже. Как это сочетается с ручным маппингом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 17:17 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
Существующие средства маппинга работают по всем трем вариантам + их вариации, но они нам все не очень подходят, т.к. в нашей системе помимо маппинга хранятся свои метаданные, которые могут изменяться из приложения + не для каждого типа требуется своя таблица (если все атрибуты типа - т.н. "статические"). То есть это комбинация стандартного маппинга с class table inheritance и хранением метаданных как объектов системы и хранением всех "статических" атрибутов всех объектов в отдельной таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 17:23 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
В данном случае я бы поступил так: обычные атрибуты помапил на параметры, дополнительные (число и структура которых заранее не известна) - сериализовал бы в xml и помапил на один единственный text-параметр и раскрутил бы его на сервере бд для последующего сохранения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 17:25 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
Поподробнее пожалуйста.... Ну раскрутили вы его на сервере в ту же отдельную таблицу, как сейчас и сделано, а выборки потом как делать? Оно кстати сейчас практически так и делается, только раскручивается из xml не на сервере БД, а в приложении. И сериализуются в XML все атрибуты, а не только дополнительные и гоняется он через веб-сервис. Но это уже другая история :). Кстати, число и структура их заранее известна. Они также описаны в метаданных. Там не все так просто получается :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 17:30 |
|
||
|
Наследование атрибутов
|
|||
|---|---|---|---|
|
#18+
>> Ну раскрутили вы его на сервере в ту же отдельную таблицу, как сейчас и сделано, а выборки потом как делать? выборки for xml запросом, в приложении десериализуешь xml обратно на объект. и не обязательно в отдельную таблицу записи вставляешь, а как понравится. т.е. на mssql например используешь openxml для создания курсора/временной таблицы и вперед, кладешь данные как нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 17:46 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33207849&tid=1545694]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
| others: | 247ms |
| total: | 456ms |

| 0 / 0 |
