|
|
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
как разруливаете целостность в ЕАВ? и насколько у вас ЕАВ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2009, 19:02 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
На сколько я понимаю, EAB не предполагает целостности (в стандартном для БД понимании). Соответственно, рулить пытаться можно руками и далеко не везде. Например, для проверки корректности заполнения поля (из справочника) можно кодом проверить корректность. При удалении записи из справочника - тоже можно пробежать по всем "аля связанным" таблицам и проверить наличие удаляемых данных. Но, проверки типа NOT NULL реализовать не удастся, в силу специфики EAB. Возможны только корявые потуги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2009, 10:30 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
KOT MATPOCKuHНа сколько я понимаю, EAB не предполагает целостности (в стандартном для БД понимании). Соответственно, рулить пытаться можно руками и далеко не везде. Например, для проверки корректности заполнения поля (из справочника) можно кодом проверить корректность. При удалении записи из справочника - тоже можно пробежать по всем "аля связанным" таблицам и проверить наличие удаляемых данных. Но, проверки типа NOT NULL реализовать не удастся, в силу специфики EAB. Возможны только корявые потуги. Ну NULL там по определению не может быть. :) А целостность я имею ввиду вот что - запретить "машине" состоять и "человека" и "яичницы". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2009, 12:06 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
> как разруливаете целостность в ЕАВ? Мне тоже было бы интересно выслушать точку зрения г-на _мод. Пара своих соображений, если не возражаете. Два аспекта задачи: техническая целостность и семантическая целостность. С технической все понятно, стандартные инструменты. Вот с семантической все плохо. Собственно, это и есть основная причина, по которой я жутко не люблю Тенцера и его апологетов: именно с его подачи расплодились полчища дебилов и их гениально кривые решения. Коль скоро нужна семантическая целостность, нужны структуры данных, которые бы могли ее обеспечивать. Универсального подхода нет. На самом деле задача сводится к множественной классификации, но классификация строится по более жестким правилам и делается расширяемой. Например, такую классификацию можно делать на основе тезауруса и ключевых слов. Или на основе BOM и спецификаций. Фишка в том, что для разных сущностей требуется разная классификация, причем, не обязательно, что при этом одна из них может быть поставлена в соответствие другой. Т. е. дополнительно к собственно классификаторам (это условное название, просто они идентичны классификаторам по структуре) нужна дополнительная структура данных, которая описывала бы и сущности, и их атрибуты, и правила классификации. Переходя на нормальный язык, написанное следует читать так: для обеспечения семантической целостности не реляционной структуры данных необходим набор метамоделей, которые обеспечивали бы соответствие семантических моделей моделям данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2009, 13:54 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
guest_20040621> . Коль скоро нужна семантическая целостность, нужны структуры данных, которые бы могли ее обеспечивать. Универсального подхода нет. На самом деле задача сводится к множественной классификации, но классификация строится по более жестким правилам и делается расширяемой. Такое впечатление что я с вами 100 раз на эту тему беседовал. :) Тут вот в чем дело, для своей прогия это обеспечиваю. Есть и множественная классификаци, правила, и динамические ограничения накладываемые на динамические структуры. Но, что делать с теми которые лезут в БД минуя. Ведь у них нет такого анализатора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2009, 14:23 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовА целостность я имею ввиду вот что - запретить "машине" состоять и "человека" и "яичницы".Если без изысков, на стандартном уровне, поддерживаемом большинством СУБД, типа foreign keys, то без особых проблем, IMHO. Простейший способ, завести дополнительную метаинформацию в таблице, описывающий ссылочные свойства. Простейший же пример: какому из свойств какие типы(классы) позволительны, и далее составной ключ на ( идентификатор свойства, идентификатор типа объекта(класса) ) в таблицу, непосредственно хранящую ссылочные данные. Это с одной стороны, а с другой - ссылка(foreign key) на таблицу объектов, но, опять же, не на идентификатор "объекта", а пары - ( идентификатор объекта, идентификатор типа объекта(класса) ). В результате, "машина" не сможет состоять из "яичницы", если только это явно не описано в таблице описания ссылочного свойства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2009, 16:26 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
> Простейший способ Да, так и есть. > Но, что делать с теми которые лезут в БД минуя. Ведь у них нет такого анализатора. Бить по шаловливым ручонкам и не давать десерта. ;) Можно, конечно, для правильно добавленных/измененных данных считать что-нибудь хитрое и записывать как атрибут, но, если табличка большая, проверка будет занимать много времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2009, 21:59 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
guest_20040621> ... Получается, что ЕАВ жив. :) Добавлю всякие ограничения, умолчания на свойствах, вычислимы свойства, агрегаты и т.д. и попробую протестить на больших объемах. Если все будет ОК, то до пенсии больше не буду писать всяких гадостей, кроме алгоритмов предметной области. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2009, 00:55 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
> Получается, что ЕАВ жив. :) Хороший вопрос. Нет, и никогда не был живым. А в сочетании с хотя бы примитивной метамоделью - это уже не EAV. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2009, 10:12 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
guest_20040621, Конечно, ЕАВ тут один из аспектов. Я подумываю поставить галочку (ЕАВ или плоская таблица) что бы пользователь сам выбрал способ хранения данных для системных (описанных в модели) свойств и внешних ключей) Но тут сложности, при изменении модели надо будет периодически "выпрямлять" БД по мере накопления изменений. Может это и не пригодится, надо бы протестировать, но сейчас занять визуализацией связей (там получаются циклы при навигации и т.д., которых надо обойти). воще эти циклы забодали. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2009, 10:35 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Получается, что ЕАВ жив. :) Хороший вопрос. Нет, и никогда не был живым. А в сочетании с хотя бы примитивной метамоделью - это уже не EAV. Наверное да, но EAV - это просто подход хранения не реляционый, и совсем без метаописаний он не имеет смысла. По поводу целостности - связи (отношения между понятиями) и ограничения . К самой базе не давать доступа напрямую никак. Все обращения только через интерфейс, либо пользовательский либо программный. Попытка программистов понять нашу структуру eAV самим напрямую обычно заканчивается провалом, несмотря на наличие описания (система самоописывающая, т.е. через себя же и это несколько напрягает в понимании), и они бросают это гиблое занятия и используют процедуры или веб-службы, которые совместно с системой устанавливаются :)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2009, 06:38 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифовкак разруливаете целостность в ЕАВ? и насколько у вас ЕАВ? Вся переменная часть (объекты, документы, классификаторы, операции) - EAV. То, что задается моделью - обычные таблицы (например - проводки, остатки, обороты). На уроне БД никакой целостности нет. Но на уровне приложения нельзя создать "плохой" объект. Также нельзя удалить используемый объект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2009, 13:51 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
guest_20040621Т. е. дополнительно к собственно классификаторамнужна дополнительная структура данных, которая описывала бы и сущности, и их атрибуты, и правила классификации. Ну, собственно так и есть. Метаописание сущности содержит перечень ее атрибутов разных типов, в т.ч. и тип "ссылка на классификатор". Это описание используется и для отображения и для целостности и для навигации. При этом сами классификаторы не являются сущностями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2009, 13:58 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовНо, что делать с теми которые лезут в БД минуя. Ведь у них нет такого анализатора. А они и не лезут, прав нет. Вы ведь не лезете в физическую организацию БД. Здесь то же самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2009, 14:00 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
guest_20040621А в сочетании с хотя бы примитивной метамоделью - это уже не EAV. Ну в общем да. Получается что уровень СУБД - фиксированный набор таблиц фиксированной стр-ры - это "физический уровень", а метаописание - это "логический уровень" прикладного разработчика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2009, 14:05 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модguest_20040621Т. е. дополнительно к собственно классификаторамнужна дополнительная структура данных, которая описывала бы и сущности, и их атрибуты, и правила классификации. Ну, собственно так и есть. Метаописание сущности содержит перечень ее атрибутов разных типов, в т.ч. и тип "ссылка на классификатор". Это описание используется и для отображения и для целостности и для навигации. При этом сами классификаторы не являются сущностями. 1. Может ли объект иметь (не иметь) свойство, которого нет (есть) в описании класса-шаблона этого объекта? 2. на какой стороне переварачиваете ЕАВ? (сервер, клиент). Все ли переварачиваете? 3. Как управляете навигацией? (Допустим, начиная с какого то узла дальше на форме не надо показывать релейшны, или надо показывать только указанные релейшны по всей глубине). Как с циклами в навигации? Как формируется паекль навигационный? Эх, посмотреть бы рожу готовой проги. :) 4. Как с дополнительными экшнами? Это хранимки или программный код? Меняете прогу саму или есть механизм вызова внешнего кода? ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2009, 15:09 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов, паекль = панель :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2009, 15:10 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов1. Может ли объект иметь (не иметь) свойство, которого нет (есть) в описании класса-шаблона этого объекта? 2. на какой стороне переварачиваете ЕАВ? (сервер, клиент). Все ли переварачиваете? 3. Как управляете навигацией? (Допустим, начиная с какого то узла дальше на форме не надо показывать релейшны, или надо показывать только указанные релейшны по всей глубине). Как с циклами в навигации? Как формируется паекль навигационный? Эх, посмотреть бы рожу готовой проги. :) 4. Как с дополнительными экшнами? Это хранимки или программный код? Меняете прогу саму или есть механизм вызова внешнего кода? ... 1. нет, но есть скрытые т.е. вычисляемые св-ва - они есть в шаблоне но не высвечиваются 2. в основном используется функция GET_ATTR('имя сущности',ID,'имя атрибута') и на сервере и на клиенте в т.ч. в select. но есть и обычные join на два-три атрибута для сортировки например 3. поскольку атрибут м.б. ссылкой на другую (или эту же) сущность, то просто переход по ссылке. ссылка выбирается из списка возможных типа Поставщик -> Договор или наоборот циклов на практике не было, но если будут, то вроде ничего страшного не д.б. Рожа проги весьма примитивная, одинаковая для всех сущностей - плата за универсализм 4 есть хранимки - вызываются динамически. есть возможность подключения самодельных модулей - там пиши что хочешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2009, 16:09 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_мод, У меня получается типа этого сверху корневой тип и его объектная коллекция справа нетиповые свойства объектов из коллекции внизу табконтрол со всеми релейшнами корневого типа надо еще показать спава от гридов с релейшнами нетиповые свойства - забыл счас сделаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2009, 22:51 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
У Сахавата налицо смешение разных понятий «класс, тип» и дурная наследственность EAV c его недоопределенностью. Никогда в один классификатор не могут попасть элементы множеств с разной структурой (структурой – слово заезженное, тут в смысле «ступени», декартова произведения на множестве всех объектах-экземплярах). На множестве объектов («экземпляров», обладающих идентичностью) могут быть введена произвольная классификация (в том числе и разными способами, потому и множественная) – классификация в смысле различных подмножеств одного множества (полных разбиений, частичных, таких сяких). Вполне представима деревом с множественным вхождением объектов. Такие классы-множества сами являются объектами, обладающими идентичностью. То есть могут быть в одном множестве с экземплярами (это _мод, у которого «классы не являются сущностями»). Но, разумеется, в другом смысле, что необходимо выделить атрибутикой таких объектов. Любое отношение (бинарное, тернарное, сякое-разэдакое) на объектах (та же спецификация) уже не является подмножеством первичного множества объектов, так как оно другой структуры. Это другое множество. Но различные одинарные проекции отношений (сечения) могут быть подмножествами и попасть в классификации. В принципе никто не мешает туда же «в классификацию» добавить и проекции по определенным элементам (например, состав объекта ДСЕ25 по отношению «Спецификация»), но их необходимо выделить атрибутивно, так как это тоже ни к каком смысле не подмножества, ну и имя отношения и роль в нем придется указать. Типы данных, свойства, объекты (экземпляры), классы это принципиально разные вещи, обращаться с ними надо по-разному. У Сахавата «тип» - это сборная солянка из всего, и отношение это сборная солянка из всего. Единица измерения, цвет (есть у него такие в списке) – это не объекты, а свойства. Классификатор объектов никогда не может быть смешан с классификатором свойств. Свойства не образуют множеств, и с ними нельзя обращаться как с множествами. Нельзя посчитать число элементов «множества свойства». Число заданных значений иногда можно посчитать (для перечислимых свойств), но это бессмысленно и совсем другое. Но можно посчитать число красных объектов. Короче, не расчищено. В топку такие конструкторы. Чтобы EAV стала работоспособной, необходимо добавить более жесткие метаструктуры и навесить атрибутику на них, чтобы потом работать со всем правильно, а не складывать Сахавата и 52. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 05:36 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
YulkaУ Сахавата налицо смешение разных понятий «класс, тип» и дурная наследственность EAV c его недоопределенностью. Сахават бы с удоволствием стер бы с словаря слова - класс, свойство, тип и т.д. Каждый понимает что хочет под этими словами. На самом деле нет никаких классов. Класс - это шаблонное видение классифициующего под который кастируются реальные объекты. В любом случае класс= (Имя, идентификатор) + {свойств для отбора объектов}. Это при классификации по существующим свойствам объектов. (Select * where имеется {свойств для отбора объектов}) Другой вид классификации - агрегирующий, классификатор является СВОЙСТВОМ для всех агрегрированных объектов, у которых изначально НЕТ такого свойства. Например Мои_Друзья(перечень идентификаторов классов и отдельных объектов). Эти два вида классифицирующих объектов составляет единый навигационный классификатор со множеством классифицирующих входов. Никогда в один классификатор не могут попасть элементы множеств с разной структурой (структурой – слово заезженное, тут в смысле «ступени», декартова произведения на множестве всех объектах-экземплярах). На множестве объектов («экземпляров», обладающих идентичностью) могут быть введена произвольная классификация (в том числе и разными способами, потому и множественная) – классификация в смысле различных подмножеств одного множества (полных разбиений, частичных, таких сяких). Вполне представима деревом с множественным вхождением объектов. Классификатор не дерево. Такие классы-множества сами являются объектами, обладающими идентичностью. То есть могут быть в одном множестве с экземплярами (это _мод, у которого «классы не являются сущностями»). Но, разумеется, в другом смысле, что необходимо выделить атрибутикой таких объектов. Любое отношение (бинарное, тернарное, сякое-разэдакое) на объектах (та же спецификация) уже не является подмножеством первичного множества объектов, так как оно другой структуры. Это другое множество. Но различные одинарные проекции отношений (сечения) могут быть подмножествами и попасть в классификации. Отнощение такой же класс как и остальные. Единственное отличие - объекты этого класса не имеют осмысленного имени. Нельзя ИД1,Работает1, чел1, цех1 ИД2,Работает2, чел2, цех2 Можно создать агрегирующий классифицирующий объект Документ и приписать к нему отношения. Т.е. ничем классификация отношений не отличается. В принципе никто не мешает туда же «в классификацию» добавить и проекции по определенным элементам (например, состав объекта ДСЕ25 по отношению «Спецификация»), но их необходимо выделить атрибутивно, так как это тоже ни к каком смысле не подмножества, ну и имя отношения и роль в нем придется указать. Проекция - динамическая классификация по свойству классификатора (свойства классификатора является фильтром в select. Любой узел графа классифицирующего является оператором Select. Типы данных, свойства, объекты (экземпляры), классы это принципиально разные вещи, обращаться с ними надо по-разному. У Сахавата «тип» - это сборная солянка из всего, и отношение это сборная солянка из всего. Это все одна и та же фигня с точки зрения возможности приведения в вид (ИД, Наименование). Единица измерения, цвет (есть у него такие в списке) – это не объекты, а свойства. Классификатор объектов никогда не может быть смешан с классификатором свойств. Свойства не образуют множеств, и с ними нельзя обращаться как с множествами. Нельзя посчитать число элементов «множества свойства». Число заданных значений иногда можно посчитать (для перечислимых свойств), но это бессмысленно и совсем другое. Но можно посчитать число красных объектов. Ну, прогеры привыкли, что есть класс "Color"и справочник "Едизм" с несколькими свойствами. Короче, не расчищено. В топку такие конструкторы. Чтобы EAV стала работоспособной, необходимо добавить более жесткие метаструктуры и навесить атрибутику на них, чтобы потом работать со всем правильно, а не складывать Сахавата и 52. Дык, это дело прикладника, а не проги моей. Пусть опишет правильно. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 09:51 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовУ меня получается типа этого Почти похоже. Для меня Накладные - это объекты супертипа Событие (или операция, т.е. то что имеет дату-время). Способ отображения - простой список с возможность раскрыть форму одной операции, внутри видим свойство -список товаров - раскрываем ну и т.д Глубина вложенности м.б. не ограничена. зя у меня классификаторы всегда иерархические по определению ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 11:45 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
YulkaЧтобы EAV стала работоспособной, необходимо добавить более жесткие метаструктуры и навесить атрибутику на них, чтобы потом работать со всем правильно Я бы сказал наоборот: для реализации метаструктуры можно применить EAV (и не только - есть и другие методы). Т.е. под цель подбираются средства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 11:48 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модциклов на практике не было, но если будут, то вроде ничего страшного не д.б. У меня бывали циклы в похожей ситуации. Ничего страшного не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 12:51 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модДля меня Накладные - это объекты супертипа Событие (или операция, т.е. то что имеет дату-время). Хм. А Вы множественное наследование применяли или нет? Или только от "операции" "наследуетесь"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 12:54 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сергей ВаскецовХм. А Вы множественное наследование применяли или нет? Или только от "операции" "наследуетесь"? Чистая иерархия: сущности -> объекты-> типы объектов сущности -> операции-> типы операций ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 13:39 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сергей ВаскецовУ меня бывали циклы в похожей ситуации. Ничего страшного не было. согласен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 13:40 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов, авторСахават бы с удоволствием стер бы с словаря слова - класс, свойство, тип и т.д. Каждый понимает что хочет под этими словами. А я думаю, что обсуждающие как раз примерно одинаково понимают термин "класс", но некоторые не выделяют все необходимые формальные свойства, необходимые для моделирования классов. А также смешивают разные метамодели классов в одну кучу, превращая эту кучу в нецелостную и противоречивую. Грубо говоря, подход к классификации тогда станет легитимным и общепризнанным, когда совокупность классов, экземпляров и т.д. в ней будет компилируема однозначным образом. Ты же програмист, заводишь переменную определенного типа, класса и только в допустимом смысле это имя потом и используешь. Но в "русском" языке ты почему-то начинаешь себя вести совершенно иначе, жонглируя неопределенными словами. И при классификации ведешь себя иначе, предполагая что компилляцию типов будет делать кто-то за тебя. авторНа самом деле нет никаких классов. Класс - это шаблонное видение классифициующего под который кастируются реальные объекты. Тут никто не возражает против этого. Классов, свойств в природе нет. Имеются объекты. Субъекты вольны их раскладывать в определенные кучки по определенным правилам (например, свойствам объектов). Чтоб не путаться, так и говорят, что класс может иметь структуру (набор свойств и значений) и совокупность объектов этой структуры. Классы - это понятия. Каждое понятие имеет уникальный идентификатор (термин), чтобы не было синонимии, может (но не обязано) иметь структуру понятия и объем понятия (в частном случае нулевой, если под понятие не подходит не один объект). Свойства придуманы для простоты работы с отношениями, задание которых представляется трудным, трудоемким и т.д. В определенном смысле свойства без хотя бы двух объектов не существуют. Покопавшись в каждом свойства найдете отношение на объектах, участие в котором и означает это свойство. Цвет - это участие объектов в отношении отражения света на определенной частоте. Эталонные объекты для мер и весов хранятся, чтобы ни у кого не было сомнений в единицах измерений. Имя, идентификатор свойством не является. Это выделенная фигня для различения объектов. Конечно, могут быть всякие частичные имена, не образующие первичного ключа. Вот они свойства. авторВ любом случае класс= (Имя, идентификатор) + {свойств для отбора объектов}. Это при классификации по существующим свойствам объектов. (Select * where имеется {свойств для отбора объектов}) Обобщим до наличия свойства, а не только классификация по значению. У тебя тут только 2 задачи, есть масса других, для чего используют классы и классификации: - размещение объекта в класс по свойствам и значеиям; - отбор, автоматическое формирование множества, объема понятия, соответствующего классу. Еще выделяют задачи поиска объекта (в системе классов), использования объектов классов и т.д. Предполагается, что все объекты некоторого класса можно использовать одинаковым образом (то есть класс как бы имеет совокупность методов класса). Если почему-то подклассы класса, объекты класса нельзя использовать одинаковым для всех образом, то классификация НЕ ВЕРНА. Именно об этом я тебе и талдычу. Разное образует разные метаклассы, их нельзя использовать одинаковым образом, ошибки будут. авторДругой вид классификации - агрегирующий, классификатор является СВОЙСТВОМ для всех агрегрированных объектов, у которых изначально НЕТ такого свойства. Например Мои_Друзья(перечень идентификаторов классов и отдельных объектов). Нет возражений. То же можно сделать и с классами, имеющими свойства и значения - присваивать их объектам класса. Тут нет никакой принципиальной разницы, чтобы выделять эту модель классов в какие-то "агрегирующие". Все классы агрегирующие, то есть представляют множество своих объектов. авторЭти два вида классифицирующих объектов составляет единый навигационный классификатор со множеством классифицирующих входов. Не понятно. На картинке у тебя слева - это только классы? Экземпляров там нет? Кроме того, как я говорила, там есть лишнее - то, что туда не может попасть. Типы данных, свойства, отношения разной структуры могут образовывать только отдельные непересекающиеся классификаторы. авторКлассификатор не дерево. А где я предлагала дерево. Я изначально предлагала множественный классификатор, которые отобразим на дерево. авторОтнощение такой же класс как и остальные. Единственное отличие - объекты этого класса не имеют осмысленного имени. Нельзя ИД1,Работает1, чел1, цех1 ИД2,Работает2, чел2, цех2 Совсем не такой же. Отдельный, причем каждое отношение отдельно. Пробую объяснить. Классы одного классификатора образуют подклассы, объединение экземляров дочерних дает исходный класс. Никогда отношение на классах не сможет стать подклассом или надклассом, оно всегда в отдельном классификаторе. Несколько разных отношений иногда могут быть в одном классификаторе, если все они построены на одной ступени (являются подмножествами одинакового декартова произведения двух классов, то есть подклассами). Таким образом классификаторы объектов и классификаторы разных отношений никогда не пересекаются. Если ты желаешь утверждать, что отношение "состоит" из классов (в данном случае у тебя, например, классов Люди, Цеха), то это также не верно. Так как в отличие от классов отношение - это некоторое подмножество декартова произведения, и вовсе не все объекты обязаны в него входить, а только некоторые или соответствующие определенным условиям целостности. Далее, мы говорили, что каждый объект классификации является уникальным, то есть представим единственным образом (узел имеет единственное нижнее замыкание, единственное (множественное) поддерево. Классы, объекты классов могут входить в разные отношения, причем иногда по нескольку раз в одно отоншение в разных ролях. По Людям и отношению "работают в" можно найти цеха. Цеха не являются подклассом Людей, и помещение их в классификатор может быть только условностью, выделенной атрибутикой метамодели. Подмножества Цехов для каждого человека свои, то есть это разные множества и назвать их именем отношения не допустимо в силу уникальности классов. По Цехам в свою очередь может быть найдена проекция соответствующих Людей. Об этих навигационных циклах речь? Запретить такие циклы - опять же нарушить уникальность раскрытия объекта, класса. Не запретить - бред. Так что это никакое не раскрытие, и к классификатору не имеет отношения вообще. Но показать, выделив явным образом, можно. авторМожно создать агрегирующий классифицирующий объект Документ и приписать к нему отношения. Т.е. ничем классификация отношений не отличается. Не понятно ниче ты пишешь. Отношением принято называть множество. Документ - это элемент отношения, экземпляр. И куда ты его в классификаторе засунешь, кроме как в само отношение? авторПроекция - динамическая классификация по свойству классификатора (свойства классификатора является фильтром в select. Любой узел графа классифицирующего является оператором Select. Нет, я имела в виду операцию взятия проекции отношения, то есть получение подмножества соответствующего класса или другого отношения. авторТипы данных, свойства, объекты (экземпляры), классы это принципиально разные вещи, обращаться с ними надо по-разному. У Сахавата «тип» - это сборная солянка из всего, и отношение это сборная солянка из всего. авторЭто все одна и та же фигня с точки зрения возможности приведения в вид (ИД, Наименование). Это вообще не при чем. Идентификатор имеют, конечно, но на этом схожесть заканчивается. авторЕдиница измерения, цвет (есть у него такие в списке) – это не объекты, а свойства. Классификатор объектов никогда не может быть смешан с классификатором свойств. Свойства не образуют множеств, и с ними нельзя обращаться как с множествами. Нельзя посчитать число элементов «множества свойства». Число заданных значений иногда можно посчитать (для перечислимых свойств), но это бессмысленно и совсем другое. Но можно посчитать число красных объектов. авторНу, прогеры привыкли, что есть класс "Color"и справочник "Едизм" с несколькими свойствами. Проггеры привыкли с разными классами работать по разному. Посмотри на свой код для разных справочников. Справочники справочникам рознь. авторЧтобы EAV стала работоспособной, необходимо добавить более жесткие метаструктуры и навесить атрибутику на них, чтобы потом работать со всем правильно, а не складывать Сахавата и 52. авторДык, это дело прикладника, а не проги моей. Пусть опишет правильно. :) Это станет твоим делом, когда прога начислит тебе неправильную зарплату или разобьется самолет с твоей дочерью? Если метамодель некомпиллируема, то кодом потом ты их исправишь только в частных случаях. Если ты делаешь прогу для себя - то и бог с тобой. Ты владелец своих моделей. А если хочешь сделать нечто отчуждаемое, то надо все переделывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 20:41 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_мод, авторYulka Чтобы EAV стала работоспособной, необходимо добавить более жесткие метаструктуры и навесить атрибутику на них, чтобы потом работать со всем правильно авторЯ бы сказал наоборот: для реализации метаструктуры можно применить EAV (и не только - есть и другие методы). Т.е. под цель подбираются средства. Согласна. Как физически хранить - это отдельный вопрос. EAV - для уникального, например для задания самих метамоделей самое оно. А все множества удобней жестко хранить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 20:44 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Yulka_мод, авторYulka Чтобы EAV стала работоспособной, необходимо добавить более жесткие метаструктуры и навесить атрибутику на них, чтобы потом работать со всем правильно авторЯ бы сказал наоборот: для реализации метаструктуры можно применить EAV (и не только - есть и другие методы). Т.е. под цель подбираются средства. Согласна. Как физически хранить - это отдельный вопрос. EAV - для уникального, например для задания самих метамоделей самое оно. А все множества удобней жестко хранить. Нет. ЕАВ имеет приумещества для классификации. если сделать жестко, то придется продублировать ИД, Наим в отдельной таблице и махаться с синхронизацией и нецелостностью технической в виде вьюшки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 21:08 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модСергей ВаскецовУ меня бывали циклы в похожей ситуации. Ничего страшного не было. согласен а как с памятью? создаете новые классы при рекурсии или используете устаревший кеш? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 21:09 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов_модСергей ВаскецовУ меня бывали циклы в похожей ситуации. Ничего страшного не было. согласен а как с памятью? создаете новые классы при рекурсии или используете устаревший кеш? классы = экземпляры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 21:09 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовНет. ЕАВ имеет приумещества для классификации. если сделать жестко, то придется продублировать ИД, Наим в отдельной таблице и махаться с синхронизацией и нецелостностью технической в виде вьюшки. Конкретно: все объекты всех типов хранятся в двух таблицах: список самих объектов и св-ва объектов. Никаких проблем с целостностью нет и вьюшек нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 10:30 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифова как с памятью? создаете новые классы при рекурсии или используете устаревший кеш? при навигации один и тот же модуль вызывается рекурсивно. ессно памяти может не хватить, но при нынешней технике не вижу проблемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 10:32 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модпри навигации один и тот же модуль вызывается рекурсивно Я тоже так сначала делал. Но когда стали возникать ситуации, что состояние вызывающего не дает ему возможности быть вызванным, я стал делать кастрированные (с функциональной точки зрения) новые экземпляры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 10:36 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовЕАВ имеет приумещества для классификации. если сделать жестко, то придется продублировать ИД, Наим в отдельной таблице и махаться с синхронизацией и нецелостностью технической в виде вьюшки. Сахават, неужели дублирование какого-то ИД и Наим сравнимо с этим?: _модпри навигации один и тот же модуль вызывается рекурсивно. ессно памяти может не хватить, но при нынешней технике не вижу проблемы Читаю и не пойму в чем преимущества? Считаю EAV порочной практикой в принципе. Видимость легкости пополнения атрибутного состава объектов на фоне невозможности полноценного их использования. Любой отчет с использованием этих атрибутов превращается просто в геморрой, а вы про навигацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 10:43 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов Но когда стали возникать ситуации, что состояние вызывающего не дает ему возможности быть вызванным, я стал делать кастрированные (с функциональной точки зрения) новые экземпляры. Тоже вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 10:57 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
iscrafmВидимость легкости пополнения атрибутного состава объектов на фоне невозможности полноценного их использования. Любой отчет с использованием этих атрибутов превращается просто в геморрой, а вы про навигацию. Новые объекты и/или св-ва вводятся как раз для их "полноценного использования" (причем мгновенного). Никаких проблем с отчетами пока не наблюдалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 13:08 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов_модпри навигации один и тот же модуль вызывается рекурсивно Я тоже так сначала делал. Но когда стали возникать ситуации, что состояние вызывающего не дает ему возможности быть вызванным, я стал делать кастрированные (с функциональной точки зрения) новые экземпляры. А говорили с циклическими релейшнами нет проблем :) Тут уж либо кастраты в виде объектов без релейшн, либо новая копия всех объектов :( в принципе можно в пожарном порядке временно отключать мешающие циклические ссылки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 14:50 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
iscrafmСахават ЮсифовЕАВ имеет приумещества для классификации. если сделать жестко, то придется продублировать ИД, Наим в отдельной таблице и махаться с синхронизацией и нецелостностью технической в виде вьюшки. Сахават, неужели дублирование какого-то ИД и Наим сравнимо с этим?: _модпри навигации один и тот же модуль вызывается рекурсивно. ессно памяти может не хватить, но при нынешней технике не вижу проблемы Читаю и не пойму в чем преимущества? Считаю EAV порочной практикой в принципе. Видимость легкости пополнения атрибутного состава объектов на фоне невозможности полноценного их использования. Любой отчет с использованием этих атрибутов превращается просто в геморрой, а вы про навигацию. С ЕАВ очень удобная классификация и хошь не хошь не привязываешься к наименованиям полей таблиц. А так можно с этой же метаструктурой генерировать плоские таблицы и работать с ними. Я эту возможность оставляю. пока никак с реентерабельностью не разберусь, ошибка где то в логике. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 15:00 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов пока никак с реентерабельностью не разберусь, ошибка где то в логике. :( фу, тупая ошибка была :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 15:33 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифовв принципе можно в пожарном порядке временно отключать мешающие циклические ссылки. на этом остановлюсь, правда формы дальше по циклу уже модальные :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 15:35 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовА говорили с циклическими релейшнами нет проблем :) Я писал, что ничего страшного нет. Любая циклическая зависимость всегда требует своеобразного подхода. Сахават ЮсифовТут уж либо кастраты в виде объектов без релейшн Просто у экземпляра признак, что он "ущербный", он много чего не делает (например, сериализоваться ему запрещено в нашем случае) и умрет сам, как только в нем не будет необходимости. Сахават Юсифовв принципе можно в пожарном порядке временно отключать мешающие циклические ссылки. В начале так и делали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 15:38 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифовправда формы дальше по циклу уже модальные :( Вот это и есть первая но не единственная беда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 15:39 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сергей ВаскецовСахават Юсифовправда формы дальше по циклу уже модальные :( Вот это и есть первая но не единственная беда. сказал а, скажи б что там еще плохого будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 15:43 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модКонкретно: все объекты всех типов хранятся в двух таблицах: список самих объектов и св-ва объектов. Никаких проблем с целостностью нет и вьюшек нет. Значит вы внешние ключи держите в таблице свойств? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 16:04 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифовчто там еще плохого будет? Ну, потенциально любое состояние формы, когда она не готова принять навигацию. Например, наличие несохраненных изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 16:08 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовЗначит вы внешние ключи держите в таблице свойств? В метаописании как ссылки на сущности или классификаторы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 16:46 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сергей ВаскецовСахават Юсифовчто там еще плохого будет? Ну, потенциально любое состояние формы, когда она не готова принять навигацию. Например, наличие несохраненных изменений. Так. ВСЕ с этим. Никакик кастратов, никакой лишней памяти. Никаких циклов. Всего этого больше НЕТ. Неправильная парадигма визуализации была. Поменял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 17:49 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модСахават ЮсифовЗначит вы внешние ключи держите в таблице свойств? В метаописании как ссылки на сущности или классификаторы я внешние ключи держу в отдельной таблице. 10 таблиц базовых Свойство Тип Тип_Свойство Тип_ВнешниеСсылки Объект Объект_Свойство Объект_ВнешниеСсылки Классификатор Классификатор_Свойство Классификатор_Объект ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 17:52 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовВСЕ с этим Юзеры косяки найдут, можно не сомневаться. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 17:56 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
iscrafm Любой отчет с использованием этих атрибутов превращается просто в геморрой, а вы про навигацию. Прикрутил репорт дизайнер девок. Очень даже просто делаются отчеты. :) Накладная генерируется динамически. :) Запоминается схема динамического датасет и все. НЕТ проблем. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2009, 21:54 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов10 таблиц базовых многовато будет. для метаописания достаточно 1 таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 09:27 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модСахават Юсифов10 таблиц базовых многовато будет. для метаописания достаточно 1 таблицы в этих таблицах и метаописание и сами данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 10:30 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов_модСахават Юсифов10 таблиц базовых многовато будет. для метаописания достаточно 1 таблицы в этих таблицах и метаописание и сами данные все можно сунуть в одну таблицу но это уже маразм по моему я все еще собираюсь сгенерировать нормальные таблицы и связи для предметней области. По хорошему в метаописании СКЛ сервера не хватает не так много - разделение на ссылочную целостность и релейшн, сложные констрейнты между таблицами (assert) и мелочи типа как показать (вся эта хрень была у интербейзе). А так можно воще не держать метаописание свое, токо сделать ЕАВ для всех таблиц на допполя пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 10:47 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов По хорошему в метаописании СКЛ сервера не хватает не так много - разделение на ссылочную целостность и релейшн, сложные констрейнты между таблицами (assert) и мелочи типа как показать (вся эта хрень была у интербейзе). расшифруй ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 11:10 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Petro123Сахават Юсифов По хорошему в метаописании СКЛ сервера не хватает не так много - разделение на ссылочную целостность и релейшн, сложные констрейнты между таблицами (assert) и мелочи типа как показать (вся эта хрень была у интербейзе). расшифруй чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 11:20 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовPetro123Сахават Юсифов По хорошему в метаописании СКЛ сервера не хватает не так много - разделение на ссылочную целостность и релейшн, сложные констрейнты между таблицами (assert) и мелочи типа как показать (вся эта хрень была у интербейзе). расшифруй чего? чего не хватает в метаданных СУБД (в служебных схемах в оракле или системной БД сиквела) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 11:26 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифовв этих таблицах и метаописание и сами данные ??????? (может отсюда и проблемы ?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 12:17 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифоввсе можно сунуть в одну таблицу метаописание - в одну данные - в две, 4, 6 и т.д ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 12:20 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Petro123чего не хватает в метаданных СУБД (в служебных схемах в оракле или системной БД сиквела) метаданные СУБД описывают стр-ру РБД, метаданные прикладной системы - объекты системы. разные вещи просто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 12:22 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модPetro123чего не хватает в метаданных СУБД (в служебных схемах в оракле или системной БД сиквела) метаданные СУБД описывают стр-ру РБД, метаданные прикладной системы - объекты системы. разные вещи просто у кого как. У меня метаданные СУБД описывают логическую структуру объектов Системы . Например: мастер - детайль, FK, ограничения поля данных, и т.д. В случае EAV там для этого нет места, поэтому и нужно городить метаструктуру, то бишь классификатор. ЗЫ. Конечно это холивар и бесконечный спор. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 12:52 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Petro123 У меня метаданные СУБД описывают логическую структуру объектов Системы . Например: мастер - детайль Как это СУБД делает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 13:48 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модСахават Юсифоввсе можно сунуть в одну таблицу метаописание - в одну данные - в две, 4, 6 и т.д Свойство Тип Тип_Свойство Тип_ВнешниеСсылки Объект Объект_Свойство Объект_ВнешниеСсылки Классификатор Классификатор_Свойство Классификатор_Объект Кроме красных (там объекты), остальные метаданные. Как в одной таблице описать типы, их структуру (совйства, ссылки, классификацию)? покажи ка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 13:51 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Petro123У меня метаданные СУБД описывают логическую структуру объектов Системы . Ошибка - РБД - это модель данных (табличная !) реальных объектов произвольной и более сложной стр-ры. МД строится для того чтобы можно было манипулировать св-ми объектов стандартным образом, т.е. посредством рел. алгебры. Прямое описание объектов посредством метаописания - это отказ от РМД и соотв. алгебры. - применяется в определенных целях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 14:18 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовКак в одной таблице описать типы, их структуру (совйства, ссылки, классификацию)? покажи ка имя класса имя св-ва тип св-ва или имя классификатора или имя класса порядковый номер св-ва видимый/невидимый/ обязательный/не обязателный/ вычисляемое значение - формула значение по умолчанию - формула ограничения на значение - формула ну и т.д если св-во = список то все то же самое рекурсивно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 14:23 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модPetro123У меня метаданные СУБД описывают логическую структуру объектов Системы . Ошибка - РБД - это модель данных (табличная !) реальных объектов произвольной и более сложной стр-ры. === да! Плоская УПРОЩЁННАЯ модель реального мира (как любая другая модель) МД строится для того чтобы можно было манипулировать св-ми объектов стандартным образом, т.е. посредством рел. алгебры. == я не против. На то она и УПРОЩАЕТ свойства и взаимосвязи Прямое описание объектов посредством метаописания - это отказ от РМД и соотв. алгебры. - применяется в определенных целях. ====== вот это я не понял. модель БД для работы рел.алгебры я не трогаю. Дело в том, что помимо метамодели так сказать, для поддержки работы РБД, там же (в табличном виде) описывается бизнес-логика и модель предметной области. Например, отношение многие ко многим в сущностях Товары - Заказчики описаны в табличном виде в системных таблицах (поле owner, поле ссылочное, вид связи, ....). IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 14:29 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Petro123 Например, отношение многие ко многим в сущностях Товары - Заказчики описаны в табличном виде в системных таблицах (поле owner, поле ссылочное, вид связи, ....). поправлюсь. Если вы проектировали БД на декларативной ссылочной целостности (напр. через директиву cascade) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 14:33 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Petro123Например, отношение многие ко многим в сущностях Товары - Заказчики описаны в табличном виде в системных таблицах (поле owner, поле ссылочное, вид связи, ....). IMHO тогда д.б. описана привязка сущностей к таблицам БД: Заказчики = tabl1+tabl2 и т.д тогда операции с сущностями можно транслировать в sql в случае EAV привязка не описывается - она стандартная для всех сущностей и sql стандартный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 14:36 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модPetro123Например, отношение многие ко многим в сущностях Товары - Заказчики описаны в табличном виде в системных таблицах (поле owner, поле ссылочное, вид связи, ....). IMHO тогда д.б. описана привязка сущностей к таблицам БД: Заказчики = tabl1+tabl2 и т.д тогда операции с сущностями можно транслировать в sql зачем это надо? Чтобы соединить ООП клиента с РСУБД? Это никому не надо. Привязка сущностей к таблицам происходит на другом уровне. Вар.1 - БЛ в виде пакетов и процедур в них на сервере. Тогда пакет оракал = класс = сущность. И все методы с клиента и с класа клиента оперируют с метамоделью в виде пакетов-классов. Вар.2 - БЛ в виде библиотек на клиенте. Уже давно реализовано в клиентских библитеках и программист на клиенте оперирует не сущностями, а физической структурой БД через SQL строя объекты этим ЯП (Join) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 14:55 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Petro123Тогда пакет оракал = класс = сущность. Ну это-то понятно :) Новый класс - пиши новый пакет (и еще кучу кода). Но мы как раз обсуждаем способы этого избежать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 15:10 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модPetro123Тогда пакет оракал = класс = сущность. Ну это-то понятно :) Новый класс - пиши новый пакет (и еще кучу кода). Но мы как раз обсуждаем способы этого избежать. а это возможно? Пакет это не только имя, но и методы CRUD. --- Проблема в том, что класс=данные+методы_для_работы_с_ними. Допустим вы создали супер-пупер модель по добавлению сущностей. А методы? Что с ними делать? Перебросить метод "ЗакрытьОперДень" на серверПриложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 15:17 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модНо мы как раз обсуждаем способы этого избежать. избежать очень просто - сериализовывать классы в БЛОБ, и потом рожать их обратно на клиента. Правда сервер тут ни при чём (как при EAV) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 15:19 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Petro123а это возможно? А что мы здесь обсуждаем ? :) Petro123 Допустим вы создали супер-пупер модель по добавлению сущностей. Уже создали Petro123А методы? Что с ними делать? Общие наследуются, оригинальные добавляются вместе с сущностями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 16:37 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_мод оригинальные добавляются вместе с сущностями. пока не понял каким образом. Нет так? _модНовый класс - пиши новый пакет (и еще кучу кода). откуда в вашей модели появились Методы? Какое физическое воплощение на сервере имеет метод? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 17:02 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Petro123откуда в вашей модели появились Методы? Какое физическое воплощение на сервере имеет метод? можно так: хранимки на сервере, в описании сущности - список методов и соотв. имена хранимок можно так же подменить стандартные методы зы на практике использовал один раз, в основном обходятся стандартными ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 17:36 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Пойду до конца. Посмотрим что ЕАВ может дать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2009, 19:09 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовПойду до конца. Посмотрим что ЕАВ может дать. 1. Объекты ЕАВ - предметы по типам готовые изделия детали сборки материалы комплектующие ........... - склады - контрагенты - МОЛ ............ 2. Операции ЕАВ - накладные - счета - платежи ........ 3. классификаторы не ЕАВ - типы предметов - виды договоров - типы клиентов ну и т.д 4 Конструкторские спецификации не ЕАВ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2009, 14:03 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модСахават ЮсифовПойду до конца. Посмотрим что ЕАВ может дать. 1. Объекты ЕАВ - предметы по типам готовые изделия детали сборки материалы комплектующие ........... - склады - контрагенты - МОЛ ............ Это понятно. 2. Операции ЕАВ - накладные - счета - платежи ........ Наверное, под операцией понимается действия, меняющие определенные свойства объектов. Т.е., актуализированный нормативный процесс на входе/выходе которого актуальные объекты (могут не быть) и определенная схема документирования факта актуализации. 3. классификаторы не ЕАВ - типы предметов - виды договоров - типы клиентов ну и т.д Все что может быть перечислимым и образующим для отношения (ссылки), у меня ЕАВ. 4 Конструкторские спецификации не ЕАВ Почему? Ввел 3 типа методов 1. Программный код - немспейс, класс, метод, аргументы (через рефлекцию) 2. Хранимка - схема, процедура, параметры 3. SQL - файл, параметры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2009, 17:16 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
[quot Сахават Юсифов]Наверное, под операцией понимается действия, меняющие определенные свойства объектов. В принципе да - некоторое событие, которое привязано ко времени и что-то меняет в окружающей среде. Внешне оформлено как документ произвольной стр-ры , т.е. ЕАВ зы А что "Почему ?" - не понял последнего вопроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2009, 11:24 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_мод, 4 Конструкторские спецификации не ЕАВ Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2009, 13:26 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Вот как описываю методы. Ниче себе получилось. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2009, 13:31 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов4 Конструкторские спецификации не ЕАВ Почему? Это часть фиксированной модели данных - контструкторский граф. Его вершины - предметы, их св-ва - ЕАВ, а дуги графа имеют заданный моделью набор св-в. Таких фиксир. частей много - например проводки, остатки на счетах и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2009, 13:48 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
И метод этот появляется на форме типа ввиде кнопки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2009, 13:53 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модСахават Юсифов4 Конструкторские спецификации не ЕАВ Почему? Это часть фиксированной модели данных - контструкторский граф. Его вершины - предметы, их св-ва - ЕАВ, а дуги графа имеют заданный моделью набор св-в. Таких фиксир. частей много - например проводки, остатки на счетах и т.д. Понятно. В принципе конструкты которые уже точно определены можно описать статически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2009, 13:54 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов_модСахават Юсифов4 Конструкторские спецификации не ЕАВ Почему? Это часть фиксированной модели данных - контструкторский граф. Его вершины - предметы, их св-ва - ЕАВ, а дуги графа имеют заданный моделью набор св-в. Таких фиксир. частей много - например проводки, остатки на счетах и т.д. Понятно. В принципе конструкты которые уже точно определены можно описать статически. Теперь, если сделать галочку для типов "Способ хранения" ЕАВ{Да, Нет}, Если "Нет" вычислить все зависимости, найти разбиение и сгенерировать для этого разбиения структуру БД, заменить ЕАВ вызовы этих структур на плоские эквиваленты, то в конечном итоге получим плоскую структуру + ЕАВ для изменчивых свойств объектов плоских структур. И вопросы о скорости и т.д. уйдут в небытие. Правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2009, 14:14 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовПравильно? Можно попробывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2009, 16:14 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Жуть что творится :) Эх, разобраться бы красиво с адекватным описанием загрузки корневых типов (типа интеллектуальный пейджинг, имеющий адекватное понимание для предмета-типа) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2009, 19:04 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
авторЭх, разобраться бы красиво с адекватным описанием загрузки корневых типов (типа интеллектуальный пейджинг, имеющий адекватное понимание для предмета-типа) В WPF в этом плане все красиво ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2009, 20:12 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
SeVaавторЭх, разобраться бы красиво с адекватным описанием загрузки корневых типов (типа интеллектуальный пейджинг, имеющий адекватное понимание для предмета-типа) В WPF в этом плане все красиво что, впф понимает семантику предметной области? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2009, 20:17 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовЖуть что творится :) Это правда. Боюсь, вам надо начинать все с начала - с модели предметной области. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2009, 14:20 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
> Это правда. Боюсь, вам надо начинать все с начала - с модели предметной области И закладывать в архитектуру SMB, BPM, онтологии и пр. фигню. Должно красиво получиться. А если еще и клиент будет работать в браузере + интегрировать учетную софтинку с виртуальным офисом и сервисами - ну просто сказка. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2009, 16:51 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
guest_20040621И закладывать в архитектуру SMB, BPM, онтологии и пр. фигню. Ну наверное не в архитектуру, а именно в модель предметной области. Проще говоря - определиться с объектами, их классификацией, поведением и прочее. А то на скринах я вижу (и не только я) какой то сумбур. guest_20040621 А если еще и клиент будет работать в браузере + интегрировать учетную софтинку с виртуальным офисом и сервисами - ну просто сказка. ;) Ну это как раз не очень большая проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2009, 17:56 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модСахават ЮсифовЖуть что творится :) Это правда. Боюсь, вам надо начинать все с начала - с модели предметной области. Предметная область не моя проблема. Если я дам крен в какую то сторону то получу 1с или что то еще. Сейчас задача - описать предметную область, сгенерировать схему БД, сделать маппинг на ЕАВ, по сгенерированной схеме построить GUI, описать возможные схемы пейджинга-фильтрации, придумать способ загрузки связей по навигации и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2009, 18:16 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
> Ну наверное не в архитектуру, а именно в модель предметной области. Не в модель, а в архитектуру. > Ну это как раз не очень большая проблема. Хм... да вот как раз проблема. Не в клиенте, а в интеграции всего зоопарка. И айпи-телефония, и удаленные файловые хранилища, и он-лайн редакторы, и информационная система, и любые другие внешние сервисы - и все это в одном контексте. Так себе не проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2009, 19:15 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
guest_20040621> а в интеграции всего зоопарка... Хе, получется интересные моменты - берешь чужую БД, сгенерируешь свою схему, сгенерируешь все навигационные связи и заливаешь в ЕАВ и получаешь базовый функционал чужой схемы. через пару итераций есть полная интеграция зоопарка и базовый функционал. Если доступны обрабатывающие методы, то и вес функционал. Сегодня показал в концерне, тут же решили отказаться от какого-то "план-дизайнера", не знаю что она там делает, но их люди знают. За 30 минут сгенерировали задачу (сами) для анализа отрасли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2009, 20:52 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модЭто правда. Боюсь, вам надо начинать все с начала - с модели предметной области. мод, можно поподробнее? что вы имеете под "предметная область"? У меня "предметная область" - генерация программы (каркаса, с возможностью расширения через сервисы) из описания "предметной области" пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2009, 21:24 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифовберешь чужую БД, сгенерируешь свою схему, сгенерируешь все навигационные связи и заливаешь в ЕАВ и получаешь базовый функционал чужой схемы. как то просто все получается Сахават. Просто не думаю что функционал можно представить в виде модели БД. Она же еще и работать должна, а не просто статически отражать состотояние объектов, как быть с этим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 00:02 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
> Хе, получется интересные моменты Если эта база данных удовлетворяет необходимому минимуму условий - да, без проблем. Вот только где вы видели такие базы данных? Как минимум данные должны быть представимы в виде (управляющий идентификатор, идентификатор состояния, идентификатор контекста (вендор данных, идентификатор модели, идентификатор сущности, идентификатор экземпляра сущности)). Причем, контекст и состояние - очень упрощенно идентификаторы, вообще говоря, зависимости могут быть не тривиальные. Фишка в том, что контекст как правило жестко задается при проектировании (в частости, включает в себя весь геморрой, по поводу которого в основном и возникают вопросы: права доступа, локализация, распределенная структура, классификация и пр.), а про состояния даже и вспоминать не хочется. > полная интеграция зоопарка Как вы себе это представляете, если у каждого внешнего сервиса - уникальная метамодель, совершенно не обязательно сопоставимая с вашей? > За 30 минут сгенерировали задачу (сами) для анализа отрасли. Ай, молодцы. ;) Как, интересно, они модель отрасли за полчаса умудрились построить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 01:39 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
guest_20040621, Эйфория конечно сильная. :) Особенно по поводу интеграции (потому что задача эта стоит и очень остро для большой кучи предприятий). Ребята смоделировали определенную задачу для определенного аспекта и остались довольны. По сути получается, что это фигня строит граф и дает механизм наполнения и навигации (с агрегацией и фильтрацией) по графу. Вводя допузлы и связи можно получить интересные вещи. При этом граф этот для каждого свой. Ладно немного доделаю еще тогда видно будет еуда дать крен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 02:48 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
iscrafmСахават Юсифовберешь чужую БД, сгенерируешь свою схему, сгенерируешь все навигационные связи и заливаешь в ЕАВ и получаешь базовый функционал чужой схемы. как то просто все получается Сахават. Просто не думаю что функционал можно представить в виде модели БД. Она же еще и работать должна, а не просто статически отражать состотояние объектов, как быть с этим? Что такое "работать"? Что то встроено, что то встроят. Как Искра "работает"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 02:50 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовСейчас задача - описать предметную область, сгенерировать схему БД, сделать маппинг на ЕАВ, по сгенерированной схеме построить GUI, описать возможные схемы пейджинга-фильтрации, придумать способ загрузки связей по навигации и т.д. Насколько я понял - ваша предметная область - производство. Управление производством подразумевает некоторую модель этого управления, которая в свою очередь определяет набор объектов, событий, методов и т.д. Все это хозяйство преобразуется в вычислительную модель - данные и программы. Вот как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 09:36 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
guest_20040621Хм... да вот как раз проблема. Не в клиенте, а в интеграции всего зоопарка. С этим согласен - универсальных методов нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 09:39 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовiscrafmСахават Юсифовберешь чужую БД, сгенерируешь свою схему, сгенерируешь все навигационные связи и заливаешь в ЕАВ и получаешь базовый функционал чужой схемы. как то просто все получается Сахават. Просто не думаю что функционал можно представить в виде модели БД. Она же еще и работать должна, а не просто статически отражать состотояние объектов, как быть с этим? Что такое "работать"? Что то встроено, что то встроят. на примере того же планиррования... Был атрибут ETA. Понадобилось в целях планирования более детально разбить на этапы: ETA Port + ETA Stock. Добавили атрибуты. И что? На этих атрибутах куча логики расчетов завязано, она то откуда таким же легким движением возьмется? p.s. ETA - Estimated Time Arrived ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 10:51 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
iscrafmСахават ЮсифовiscrafmСахават Юсифовберешь чужую БД, сгенерируешь свою схему, сгенерируешь все навигационные связи и заливаешь в ЕАВ и получаешь базовый функционал чужой схемы. как то просто все получается Сахават. Просто не думаю что функционал можно представить в виде модели БД. Она же еще и работать должна, а не просто статически отражать состотояние объектов, как быть с этим? Что такое "работать"? Что то встроено, что то встроят. на примере того же планиррования... Был атрибут ETA. Понадобилось в целях планирования более детально разбить на этапы: ETA Port + ETA Stock. Добавили атрибуты. И что? На этих атрибутах куча логики расчетов завязано, она то откуда таким же легким движением возьмется? p.s. ETA - Estimated Time Arrived фигня вводится новый узел в классификатрое и описывается поведение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 11:05 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
И так по всему графу, начиная с любого узла, с переходом через агрегатные типы сверху и снизу. Агрегация и фильтация через все связи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2009, 22:04 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Можно , например, взять контрагента и посмотреть в какие сборки входят купленные у него изделия. Или взять бракованные изелия и найти поставщиков материалов и изготовителя и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2009, 22:09 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
undefinedМСУ в сандалиях, Да ты, оказывается,сосед!! Я б подошел,еслт коняк не туфтовый. :) С новым годом, народ!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2009, 17:12 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Что за фигня , блин, автоматом откуда то идет старое сообщение Вот навигационный граф типа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2009, 17:13 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
undefinedМСУ в сандалиях, Да ты, оказывается,сосед!! Я б подошел,еслт коняк не туфтовый. :) С новым годом, народ!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2009, 06:20 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Во МСУ прицепился, блин :( Вот так будет покарасивше и концептуально правильно. "Товар" и "Услуга" через агрегирующий тип "Товары и Услуги" (виртуальный, просто узел в классификаторе) связываются с типом "Счет фактура". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2009, 06:23 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Прошло уже 1.5 месяца оказывается. Теперь реально могу поспорить с любым товарищем о сокрости работы системы построенной на ЕАВ. Скорость Отличная. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 06:40 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовПрошло уже 1.5 месяца оказывается. Теперь реально могу поспорить с любым товарищем о сокрости работы системы построенной на ЕАВ. Скорость Отличная. :) Я хоть и не Эйнштейн, но все таки замечу об относительности понятия "скорость работы". Не сомневаюсь, что для работы с единичными записями и связанными с ними, в целях поиска, анализа и расчета информации, скорости EAV будет достаточно. Любая же попытка выполнить на Вашей системе запрос с охватом большого массива информации с сложной фильтрацией или аггрегацией приведет к большим и непобедимым тормозам. Если Вашим пользователям не нужно выполнять аналитику в разрезе всех контрагентов, материалов по годам, это не означает, что EAV быстро работает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 10:38 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
ASCRUS, Это все теоретизация. У мня на милллионах записей тормоза такие же как и для обычных таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 12:37 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
И не надо выдмывать что мои клиенты ввожят а чего нет. в МЕС данные генерируюется и учитывается на уровне производственных операций. Временная единица нормирования - секунды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 12:39 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
авторЛюбая же попытка выполнить на Вашей системе запрос с охватом большого массива информации с сложной фильтрацией или аггрегацией приведет к большим и непобедимым тормозам. Если Вашим пользователям не нужно выполнять аналитику в разрезе всех контрагентов, материалов по годам, это не означает, что EAV быстро работает Контролы Девок(именно их Сахават и развешивает в постах), позволяют фильтрацию,группировку ,аггрегацию и аналитику замечательно делать на клиенте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 13:00 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Миллион записей для современных серверов - это не объем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 13:03 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
вощем, все это реально проверено и гут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 13:33 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
SeVa, Все это делаетеся и на сервере и на клиенте + пейджинг + JIT загрузка данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 14:35 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифоввощем, все это реально проверено и гут. Чудес не бывает. Поиск объектов по их св-вам возжожен только вумя способами: полный перебор или поиск по индексу. 1-й способ годится для небольших объемов, второй требует полной индексации всех св-в. Поскольку в ЕАВ все св-ва лежат в одной таблице, то и индекс на все один. Накладные расходы только на многократное объединение таблицы св-в с таблицей самих объектов по ИД - чем больше требуется св-в в запросе тем больше расходы. Такая вот механика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 15:13 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
авторНакладные расходы только на многократное объединение таблицы св-в с таблицей самих объектов по ИД - чем больше требуется св-в в запросе тем больше расходы. Такая вот механика. Объединять можно и на клиенте с виртуализацией в гриде,накладные расходы будут минимальны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 15:48 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Это как? на каждое свойство свой запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 15:52 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модСахават Юсифоввощем, все это реально проверено и гут. Чудес не бывает. Поиск объектов по их св-вам возжожен только вумя способами: полный перебор или поиск по индексу. 1-й способ годится для небольших объемов, второй требует полной индексации всех св-в. Поскольку в ЕАВ все св-ва лежат в одной таблице, то и индекс на все один. Накладные расходы только на многократное объединение таблицы св-в с таблицей самих объектов по ИД - чем больше требуется св-в в запросе тем больше расходы. Такая вот механика. В ЕАВ все свойства в ОДНОЙ таблице НЕ лежат. Они в разных таблицах и соответственно с разными индексами. Максимальное количество джойн к таблице объектов в моем случае 8 (типы данных - строка, целое, число, деньги, дата, логическое, образ, объект) Механика очень простая и эффективность с учетом пейджинга типа и ленивой загрузки результатов навигации очень даже хорошая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 16:59 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Система генерирует для каждой виртуальной таблицы свою хранимку, потому накладные расходы для формирования самого запроса отсутствуют. Есть и версия с генерацией обычных реляционных таблиц с нисходящими релейшнами( остальные навигационные релейшны формируютс уже в системе). Так что, при малоизменчивой предметной области (или по мере уменьшения вариабельности) можно переключиться в классический режим поставив галочу.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 17:09 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовСистема генерирует для каждой виртуальной таблицы свою хранимку, потому накладные расходы для формирования самого запроса отсутствуют. Есть и версия с генерацией обычных реляционных таблиц с нисходящими релейшнами( остальные навигационные релейшны формируютс уже в системе). Так что, при малоизменчивой предметной области (или по мере уменьшения вариабельности) можно переключиться в классический режим поставив галочу.. Как оказывается все просто. А люди - идиоты: всякие SAP, OEBS, BAAN покупают... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 17:36 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифовдддддд, конечно идиоты А можно взглянуть на прай-лист твоей системы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2009, 10:07 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовВ ЕАВ все свойства в ОДНОЙ таблице НЕ лежат. У кого как :) Максимальное количество джойн к таблице объектов в моем случае 8[/quot] Максимальное количество джойн определяется числом св-в однако ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2009, 10:45 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_модСахават ЮсифовВ ЕАВ все свойства в ОДНОЙ таблице НЕ лежат. У кого как :) Максимальное количество джойн к таблице объектов в моем случае 8 Максимальное количество джойн определяется числом св-в однако +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2009, 12:15 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
дддддд, это скорее -1. Так как, многими типами данных тогда придется распрощаться или загнать в один универсальный, что усложняет визуализацию, типизацию и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2009, 15:28 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
_мод, Максимальное количество определяется количеством типов данных. их у меня 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2009, 15:32 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
имелось ввиду количество джойнов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2009, 15:33 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
дддддд, Сама система как объект торговли не рассмативается пока. Важно что на ней строится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2009, 15:35 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
ну че? никто не хочет драться за чистоту коодовых конюшен???? или бум грид обсуждать?? как раскрасить?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2009, 20:30 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
все эти танцы вокруг еав закончились фреймворком ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2010, 17:05 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
на нем написан мес и пишутся другие вещи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2010, 17:06 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Сахават, мои поздравления и успехов! В добрый путь, как говорится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2010, 20:20 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
iscrafm, спасибо заходи а гости, обмоем :) и воще тут дела такие, один не управляюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2010, 23:28 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
iscrafmСахават, мои поздравления и успехов! В добрый путь, как говорится.+1, присоединяюсь к поздравлениям и пожеланиям, удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2010, 01:17 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
Congratulations !!!! (все завидуем :) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 10:00 |
|
||
|
(_мод)
|
|||
|---|---|---|---|
|
#18+
здорово! И что было дальше (через месяц, два)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2010, 11:58 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1542394]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
142ms |
get topic data: |
6ms |
get forum data: |
4ms |
get page messages: |
89ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 457ms |

| 0 / 0 |
