powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / (_мод)
145 сообщений из 145, показаны все 6 страниц
(_мод)
    #35802729
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как разруливаете целостность в ЕАВ?
и насколько у вас ЕАВ?
...
Рейтинг: 0 / 0
(_мод)
    #35803249
KOT MATPOCKuH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На сколько я понимаю, EAB не предполагает целостности (в стандартном для БД понимании).
Соответственно, рулить пытаться можно руками и далеко не везде.
Например, для проверки корректности заполнения поля (из справочника) можно кодом проверить корректность.
При удалении записи из справочника - тоже можно пробежать по всем "аля связанным" таблицам и проверить наличие удаляемых данных.
Но, проверки типа NOT NULL реализовать не удастся, в силу специфики EAB. Возможны только корявые потуги.
...
Рейтинг: 0 / 0
(_мод)
    #35803311
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KOT MATPOCKuHНа сколько я понимаю, EAB не предполагает целостности (в стандартном для БД понимании).
Соответственно, рулить пытаться можно руками и далеко не везде.
Например, для проверки корректности заполнения поля (из справочника) можно кодом проверить корректность.
При удалении записи из справочника - тоже можно пробежать по всем "аля связанным" таблицам и проверить наличие удаляемых данных.
Но, проверки типа NOT NULL реализовать не удастся, в силу специфики EAB. Возможны только корявые потуги.
Ну NULL там по определению не может быть. :)
А целостность я имею ввиду вот что - запретить "машине" состоять и "человека" и "яичницы".
...
Рейтинг: 0 / 0
(_мод)
    #35803395
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> как разруливаете целостность в ЕАВ?

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

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

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

На самом деле задача сводится к множественной классификации, но классификация строится по более жестким правилам и делается расширяемой. Например, такую классификацию можно делать на основе тезауруса и ключевых слов. Или на основе BOM и спецификаций. Фишка в том, что для разных сущностей требуется разная классификация, причем, не обязательно, что при этом одна из них может быть поставлена в соответствие другой. Т. е. дополнительно к собственно классификаторам (это условное название, просто они идентичны классификаторам по структуре) нужна дополнительная структура данных, которая описывала бы и сущности, и их атрибуты, и правила классификации. Переходя на нормальный язык, написанное следует читать так: для обеспечения семантической целостности не реляционной структуры данных необходим набор метамоделей, которые обеспечивали бы соответствие семантических моделей моделям данных.
...
Рейтинг: 0 / 0
(_мод)
    #35803427
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> .

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

На самом деле задача сводится к множественной классификации, но классификация строится по более жестким правилам и делается расширяемой.
Такое впечатление что я с вами 100 раз на эту тему беседовал. :)
Тут вот в чем дело, для своей прогия это обеспечиваю. Есть и множественная классификаци, правила, и динамические ограничения накладываемые на динамические структуры.
Но, что делать с теми которые лезут в БД минуя. Ведь у них нет такого анализатора.
...
Рейтинг: 0 / 0
(_мод)
    #35803554
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовА целостность я имею ввиду вот что - запретить "машине" состоять и "человека" и "яичницы".Если без изысков, на стандартном уровне, поддерживаемом большинством СУБД, типа foreign keys, то без особых проблем, IMHO.
Простейший способ, завести дополнительную метаинформацию в таблице, описывающий ссылочные свойства. Простейший же пример: какому из свойств какие типы(классы) позволительны, и далее составной ключ на ( идентификатор свойства, идентификатор типа объекта(класса) ) в таблицу, непосредственно хранящую ссылочные данные. Это с одной стороны, а с другой - ссылка(foreign key) на таблицу объектов, но, опять же, не на идентификатор "объекта", а пары - ( идентификатор объекта, идентификатор типа объекта(класса) ). В результате, "машина" не сможет состоять из "яичницы", если только это явно не описано в таблице описания ссылочного свойства.
...
Рейтинг: 0 / 0
(_мод)
    #35803610
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA...
Почти так и сделано
...
Рейтинг: 0 / 0
(_мод)
    #35803832
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Простейший способ

Да, так и есть.

> Но, что делать с теми которые лезут в БД минуя. Ведь у них нет такого анализатора.

Бить по шаловливым ручонкам и не давать десерта. ;) Можно, конечно, для правильно добавленных/измененных данных считать что-нибудь хитрое и записывать как атрибут, но, если табличка большая, проверка будет занимать много времени.
...
Рейтинг: 0 / 0
(_мод)
    #35803974
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> ...
Получается, что ЕАВ жив. :)
Добавлю всякие ограничения, умолчания на свойствах, вычислимы свойства, агрегаты и т.д. и попробую протестить на больших объемах.
Если все будет ОК, то до пенсии больше не буду писать всяких гадостей, кроме алгоритмов предметной области.
...
Рейтинг: 0 / 0
(_мод)
    #35804063
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Получается, что ЕАВ жив. :)

Хороший вопрос. Нет, и никогда не был живым. А в сочетании с хотя бы примитивной метамоделью - это уже не EAV.
...
Рейтинг: 0 / 0
(_мод)
    #35804070
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621,

Конечно, ЕАВ тут один из аспектов. Я подумываю поставить галочку (ЕАВ или плоская таблица) что бы пользователь сам выбрал способ хранения данных для системных (описанных в модели) свойств и внешних ключей) Но тут сложности, при изменении модели надо будет периодически "выпрямлять" БД по мере накопления изменений. Может это и не пригодится, надо бы протестировать, но сейчас занять визуализацией связей (там получаются циклы при навигации и т.д., которых надо обойти). воще эти циклы забодали. :(
...
Рейтинг: 0 / 0
(_мод)
    #35804803
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Получается, что ЕАВ жив. :)

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

Наверное да, но EAV - это просто подход хранения не реляционый, и совсем без метаописаний он не имеет смысла.
По поводу целостности - связи (отношения между понятиями) и ограничения . К самой базе не давать доступа напрямую никак. Все обращения только через интерфейс, либо пользовательский либо программный. Попытка программистов понять нашу структуру eAV самим напрямую обычно заканчивается провалом, несмотря на наличие описания (система самоописывающая, т.е. через себя же и это несколько напрягает в понимании), и они бросают это гиблое занятия и используют процедуры или веб-службы, которые совместно с системой устанавливаются :)).
...
Рейтинг: 0 / 0
(_мод)
    #35805662
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават Юсифовкак разруливаете целостность в ЕАВ?
и насколько у вас ЕАВ?
Вся переменная часть (объекты, документы, классификаторы, операции) - EAV. То, что задается моделью - обычные таблицы (например - проводки, остатки, обороты).
На уроне БД никакой целостности нет. Но на уровне приложения нельзя создать "плохой" объект.
Также нельзя удалить используемый объект.
...
Рейтинг: 0 / 0
(_мод)
    #35805689
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621Т. е. дополнительно к собственно классификаторамнужна дополнительная структура данных, которая описывала бы и сущности, и их атрибуты, и правила классификации.
Ну, собственно так и есть. Метаописание сущности содержит перечень ее атрибутов разных типов, в т.ч. и тип "ссылка на классификатор". Это описание используется и для отображения и для целостности и для навигации. При этом сами классификаторы не являются сущностями.
...
Рейтинг: 0 / 0
(_мод)
    #35805698
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават ЮсифовНо, что делать с теми которые лезут в БД минуя. Ведь у них нет такого анализатора.
А они и не лезут, прав нет. Вы ведь не лезете в физическую организацию БД. Здесь то же самое.
...
Рейтинг: 0 / 0
(_мод)
    #35805714
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621А в сочетании с хотя бы примитивной метамоделью - это уже не EAV.
Ну в общем да. Получается что уровень СУБД - фиксированный набор таблиц фиксированной стр-ры - это "физический уровень", а метаописание - это "логический уровень" прикладного разработчика.
...
Рейтинг: 0 / 0
(_мод)
    #35805921
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модguest_20040621Т. е. дополнительно к собственно классификаторамнужна дополнительная структура данных, которая описывала бы и сущности, и их атрибуты, и правила классификации.
Ну, собственно так и есть. Метаописание сущности содержит перечень ее атрибутов разных типов, в т.ч. и тип "ссылка на классификатор". Это описание используется и для отображения и для целостности и для навигации. При этом сами классификаторы не являются сущностями.
1. Может ли объект иметь (не иметь) свойство, которого нет (есть) в описании класса-шаблона этого объекта?
2. на какой стороне переварачиваете ЕАВ? (сервер, клиент). Все ли переварачиваете?
3. Как управляете навигацией? (Допустим, начиная с какого то узла дальше на форме не надо показывать релейшны, или надо показывать только указанные релейшны по всей глубине). Как с циклами в навигации? Как формируется паекль навигационный?
Эх, посмотреть бы рожу готовой проги. :)
4. Как с дополнительными экшнами? Это хранимки или программный код? Меняете прогу саму или есть механизм вызова внешнего кода?
...
...
Рейтинг: 0 / 0
(_мод)
    #35805926
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов,
паекль = панель :)
...
Рейтинг: 0 / 0
(_мод)
    #35806131
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават Юсифов1. Может ли объект иметь (не иметь) свойство, которого нет (есть) в описании класса-шаблона этого объекта?
2. на какой стороне переварачиваете ЕАВ? (сервер, клиент). Все ли переварачиваете?
3. Как управляете навигацией? (Допустим, начиная с какого то узла дальше на форме не надо показывать релейшны, или надо показывать только указанные релейшны по всей глубине). Как с циклами в навигации? Как формируется паекль навигационный?
Эх, посмотреть бы рожу готовой проги. :)
4. Как с дополнительными экшнами? Это хранимки или программный код? Меняете прогу саму или есть механизм вызова внешнего кода?
...
1. нет, но есть скрытые т.е. вычисляемые св-ва - они есть в шаблоне но не высвечиваются
2. в основном используется функция GET_ATTR('имя сущности',ID,'имя атрибута') и на сервере и на клиенте в т.ч. в select. но есть и обычные join на два-три атрибута для сортировки например
3. поскольку атрибут м.б. ссылкой на другую (или эту же) сущность, то просто переход по ссылке.
ссылка выбирается из списка возможных типа Поставщик -> Договор или наоборот
циклов на практике не было, но если будут, то вроде ничего страшного не д.б.
Рожа проги весьма примитивная, одинаковая для всех сущностей - плата за универсализм
4 есть хранимки - вызываются динамически. есть возможность подключения самодельных модулей - там пиши что хочешь
...
Рейтинг: 0 / 0
(_мод)
    #35806970
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,
У меня получается типа этого
сверху корневой тип и его объектная коллекция
справа нетиповые свойства объектов из коллекции
внизу табконтрол со всеми релейшнами корневого типа
надо еще показать спава от гридов с релейшнами нетиповые свойства - забыл счас сделаю
...
Рейтинг: 0 / 0
(_мод)
    #35807134
Yulka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Сахавата налицо смешение разных понятий «класс, тип» и дурная наследственность EAV c его недоопределенностью.

Никогда в один классификатор не могут попасть элементы множеств с разной структурой (структурой – слово заезженное, тут в смысле «ступени», декартова произведения на множестве всех объектах-экземплярах).

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

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

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

В принципе никто не мешает туда же «в классификацию» добавить и проекции по определенным элементам (например, состав объекта ДСЕ25 по отношению «Спецификация»), но их необходимо выделить атрибутивно, так как это тоже ни к каком смысле не подмножества, ну и имя отношения и роль в нем придется указать.


Типы данных, свойства, объекты (экземпляры), классы это принципиально разные вещи, обращаться с ними надо по-разному. У Сахавата «тип» - это сборная солянка из всего, и отношение это сборная солянка из всего.

Единица измерения, цвет (есть у него такие в списке) – это не объекты, а свойства. Классификатор объектов никогда не может быть смешан с классификатором свойств. Свойства не образуют множеств, и с ними нельзя обращаться как с множествами. Нельзя посчитать число элементов «множества свойства». Число заданных значений иногда можно посчитать (для перечислимых свойств), но это бессмысленно и совсем другое. Но можно посчитать число красных объектов.

Короче, не расчищено. В топку такие конструкторы.

Чтобы EAV стала работоспособной, необходимо добавить более жесткие метаструктуры и навесить атрибутику на них, чтобы потом работать со всем правильно, а не складывать Сахавата и 52.
...
Рейтинг: 0 / 0
(_мод)
    #35807302
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YulkaУ Сахавата налицо смешение разных понятий «класс, тип» и дурная наследственность EAV c его недоопределенностью.

Сахават бы с удоволствием стер бы с словаря слова - класс, свойство, тип и т.д. Каждый понимает что хочет под этими словами.
На самом деле нет никаких классов. Класс - это шаблонное видение классифициующего под который кастируются реальные объекты.
В любом случае класс= (Имя, идентификатор) + {свойств для отбора объектов}. Это при классификации по существующим свойствам объектов. (Select * where имеется {свойств для отбора объектов})
Другой вид классификации - агрегирующий, классификатор является СВОЙСТВОМ для всех агрегрированных объектов, у которых изначально НЕТ такого свойства. Например Мои_Друзья(перечень идентификаторов классов и отдельных объектов).
Эти два вида классифицирующих объектов составляет единый навигационный классификатор со множеством классифицирующих входов.

Никогда в один классификатор не могут попасть элементы множеств с разной структурой (структурой – слово заезженное, тут в смысле «ступени», декартова произведения на множестве всех объектах-экземплярах).

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

Классификатор не дерево.

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

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

Отнощение такой же класс как и остальные. Единственное отличие - объекты этого класса не имеют осмысленного имени. Нельзя
ИД1,Работает1, чел1, цех1
ИД2,Работает2, чел2, цех2

Можно создать агрегирующий классифицирующий объект Документ и приписать к нему отношения. Т.е. ничем классификация отношений не отличается.

В принципе никто не мешает туда же «в классификацию» добавить и проекции по определенным элементам (например, состав объекта ДСЕ25 по отношению «Спецификация»), но их необходимо выделить атрибутивно, так как это тоже ни к каком смысле не подмножества, ну и имя отношения и роль в нем придется указать.


Проекция - динамическая классификация по свойству классификатора (свойства классификатора является фильтром в select. Любой узел графа классифицирующего является оператором Select.

Типы данных, свойства, объекты (экземпляры), классы это принципиально разные вещи, обращаться с ними надо по-разному. У Сахавата «тип» - это сборная солянка из всего, и отношение это сборная солянка из всего.

Это все одна и та же фигня с точки зрения возможности приведения в вид (ИД, Наименование).

Единица измерения, цвет (есть у него такие в списке) – это не объекты, а свойства. Классификатор объектов никогда не может быть смешан с классификатором свойств. Свойства не образуют множеств, и с ними нельзя обращаться как с множествами. Нельзя посчитать число элементов «множества свойства». Число заданных значений иногда можно посчитать (для перечислимых свойств), но это бессмысленно и совсем другое. Но можно посчитать число красных объектов.

Ну, прогеры привыкли, что есть класс "Color"и справочник "Едизм" с несколькими свойствами.
Короче, не расчищено. В топку такие конструкторы.

Чтобы EAV стала работоспособной, необходимо добавить более жесткие метаструктуры и навесить атрибутику на них, чтобы потом работать со всем правильно, а не складывать Сахавата и 52.

Дык, это дело прикладника, а не проги моей. Пусть опишет правильно. :)
...
Рейтинг: 0 / 0
(_мод)
    #35807653
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават ЮсифовУ меня получается типа этого
Почти похоже. Для меня Накладные - это объекты супертипа Событие (или операция, т.е. то что имеет дату-время). Способ отображения - простой список с возможность раскрыть форму одной операции, внутри видим свойство -список товаров - раскрываем ну и т.д Глубина вложенности м.б. не ограничена.
зя у меня классификаторы всегда иерархические по определению
...
Рейтинг: 0 / 0
(_мод)
    #35807662
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YulkaЧтобы EAV стала работоспособной, необходимо добавить более жесткие метаструктуры и навесить атрибутику на них, чтобы потом работать со всем правильно
Я бы сказал наоборот: для реализации метаструктуры можно применить EAV (и не только - есть и другие методы). Т.е. под цель подбираются средства.
...
Рейтинг: 0 / 0
(_мод)
    #35807904
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модциклов на практике не было, но если будут, то вроде ничего страшного не д.б.
У меня бывали циклы в похожей ситуации. Ничего страшного не было.
...
Рейтинг: 0 / 0
(_мод)
    #35807913
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модДля меня Накладные - это объекты супертипа Событие (или операция, т.е. то что имеет дату-время).
Хм. А Вы множественное наследование применяли или нет? Или только от "операции" "наследуетесь"?
...
Рейтинг: 0 / 0
(_мод)
    #35808110
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей ВаскецовХм. А Вы множественное наследование применяли или нет? Или только от "операции" "наследуетесь"?
Чистая иерархия:
сущности -> объекты-> типы объектов
сущности -> операции-> типы операций
...
Рейтинг: 0 / 0
(_мод)
    #35808111
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей ВаскецовУ меня бывали циклы в похожей ситуации. Ничего страшного не было.
согласен
...
Рейтинг: 0 / 0
(_мод)
    #35809270
Yulka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов,

авторСахават бы с удоволствием стер бы с словаря слова - класс, свойство, тип и т.д. Каждый понимает что хочет под этими словами.


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

авторНа самом деле нет никаких классов. Класс - это шаблонное видение классифициующего под который кастируются реальные объекты.

Тут никто не возражает против этого. Классов, свойств в природе нет. Имеются объекты. Субъекты вольны их раскладывать в определенные кучки по определенным правилам (например, свойствам объектов).
Чтоб не путаться, так и говорят, что класс может иметь структуру (набор свойств и значений) и совокупность объектов этой структуры.
Классы - это понятия. Каждое понятие имеет уникальный идентификатор (термин), чтобы не было синонимии, может (но не обязано) иметь структуру понятия и объем понятия (в частном случае нулевой, если под понятие не подходит не один объект).

Свойства придуманы для простоты работы с отношениями, задание которых представляется трудным, трудоемким и т.д. В определенном смысле свойства без хотя бы двух объектов не существуют. Покопавшись в каждом свойства найдете отношение на объектах, участие в котором и означает это свойство. Цвет - это участие объектов в отношении отражения света на определенной частоте. Эталонные объекты для мер и весов хранятся, чтобы ни у кого не было сомнений в единицах измерений.
Имя, идентификатор свойством не является. Это выделенная фигня для различения объектов. Конечно, могут быть всякие частичные имена, не образующие первичного ключа. Вот они свойства.


авторВ любом случае класс= (Имя, идентификатор) + {свойств для отбора объектов}. Это при классификации по существующим свойствам объектов. (Select * where имеется {свойств для отбора объектов})

Обобщим до наличия свойства, а не только классификация по значению.
У тебя тут только 2 задачи, есть масса других, для чего используют классы и классификации:
- размещение объекта в класс по свойствам и значеиям;
- отбор, автоматическое формирование множества, объема понятия, соответствующего классу.

Еще выделяют задачи поиска объекта (в системе классов), использования объектов классов и т.д.
Предполагается, что все объекты некоторого класса можно использовать одинаковым образом (то есть класс как бы имеет совокупность методов класса). Если почему-то подклассы класса, объекты класса нельзя использовать одинаковым для всех образом, то классификация НЕ ВЕРНА.
Именно об этом я тебе и талдычу. Разное образует разные метаклассы, их нельзя использовать одинаковым образом, ошибки будут.


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

авторЭти два вида классифицирующих объектов составляет единый навигационный классификатор со множеством классифицирующих входов.

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

авторКлассификатор не дерево.
А где я предлагала дерево. Я изначально предлагала множественный классификатор, которые отобразим на дерево.

авторОтнощение такой же класс как и остальные. Единственное отличие - объекты этого класса не имеют осмысленного имени. Нельзя
ИД1,Работает1, чел1, цех1
ИД2,Работает2, чел2, цех2

Совсем не такой же. Отдельный, причем каждое отношение отдельно. Пробую объяснить.
Классы одного классификатора образуют подклассы, объединение экземляров дочерних дает исходный класс.
Никогда отношение на классах не сможет стать подклассом или надклассом, оно всегда в отдельном классификаторе. Несколько разных отношений иногда могут быть в одном классификаторе, если все они построены на одной ступени (являются подмножествами одинакового декартова произведения двух классов, то есть подклассами).

Таким образом классификаторы объектов и классификаторы разных отношений никогда не пересекаются.

Если ты желаешь утверждать, что отношение "состоит" из классов (в данном случае у тебя, например, классов Люди, Цеха), то это также не верно. Так как в отличие от классов отношение - это некоторое подмножество декартова произведения, и вовсе не все объекты обязаны в него входить, а только некоторые или соответствующие определенным условиям целостности.

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

Классы, объекты классов могут входить в разные отношения, причем иногда по нескольку раз в одно отоншение в разных ролях. По Людям и отношению "работают в" можно найти цеха. Цеха не являются подклассом Людей, и помещение их в классификатор может быть только условностью, выделенной атрибутикой метамодели. Подмножества Цехов для каждого человека свои, то есть это разные множества и назвать их именем отношения не допустимо в силу уникальности классов. По Цехам в свою очередь может быть найдена проекция соответствующих Людей.
Об этих навигационных циклах речь?
Запретить такие циклы - опять же нарушить уникальность раскрытия объекта, класса.
Не запретить - бред.
Так что это никакое не раскрытие, и к классификатору не имеет отношения вообще. Но показать, выделив явным образом, можно.

авторМожно создать агрегирующий классифицирующий объект Документ и приписать к нему отношения. Т.е. ничем классификация отношений не отличается.

Не понятно ниче ты пишешь. Отношением принято называть множество. Документ - это элемент отношения, экземпляр. И куда ты его в классификаторе засунешь, кроме как в само отношение?

авторПроекция - динамическая классификация по свойству классификатора (свойства классификатора является фильтром в select. Любой узел графа классифицирующего является оператором Select.

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

авторТипы данных, свойства, объекты (экземпляры), классы это принципиально разные вещи, обращаться с ними надо по-разному. У Сахавата «тип» - это сборная солянка из всего, и отношение это сборная солянка из всего.
авторЭто все одна и та же фигня с точки зрения возможности приведения в вид (ИД, Наименование).

Это вообще не при чем. Идентификатор имеют, конечно, но на этом схожесть заканчивается.

авторЕдиница измерения, цвет (есть у него такие в списке) – это не объекты, а свойства. Классификатор объектов никогда не может быть смешан с классификатором свойств. Свойства не образуют множеств, и с ними нельзя обращаться как с множествами. Нельзя посчитать число элементов «множества свойства». Число заданных значений иногда можно посчитать (для перечислимых свойств), но это бессмысленно и совсем другое. Но можно посчитать число красных объектов.
авторНу, прогеры привыкли, что есть класс "Color"и справочник "Едизм" с несколькими свойствами.

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

авторЧтобы EAV стала работоспособной, необходимо добавить более жесткие метаструктуры и навесить атрибутику на них, чтобы потом работать со всем правильно, а не складывать Сахавата и 52.

авторДык, это дело прикладника, а не проги моей. Пусть опишет правильно. :)

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

Если ты делаешь прогу для себя - то и бог с тобой. Ты владелец своих моделей. А если хочешь сделать нечто отчуждаемое, то надо все переделывать.
...
Рейтинг: 0 / 0
(_мод)
    #35809272
Yulka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

авторYulka
Чтобы EAV стала работоспособной, необходимо добавить более жесткие метаструктуры и навесить атрибутику на них, чтобы потом работать со всем правильно

авторЯ бы сказал наоборот: для реализации метаструктуры можно применить EAV (и не только - есть и другие методы). Т.е. под цель подбираются средства.

Согласна. Как физически хранить - это отдельный вопрос. EAV - для уникального, например для задания самих метамоделей самое оно. А все множества удобней жестко хранить.
...
Рейтинг: 0 / 0
(_мод)
    #35809290
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yulka_мод,

авторYulka
Чтобы EAV стала работоспособной, необходимо добавить более жесткие метаструктуры и навесить атрибутику на них, чтобы потом работать со всем правильно

авторЯ бы сказал наоборот: для реализации метаструктуры можно применить EAV (и не только - есть и другие методы). Т.е. под цель подбираются средства.

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

Нет. ЕАВ имеет приумещества для классификации.
если сделать жестко, то придется продублировать ИД, Наим в отдельной таблице и махаться с синхронизацией и нецелостностью технической в виде вьюшки.
...
Рейтинг: 0 / 0
(_мод)
    #35809293
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модСергей ВаскецовУ меня бывали циклы в похожей ситуации. Ничего страшного не было.
согласен
а как с памятью? создаете новые классы при рекурсии или используете устаревший кеш?
...
Рейтинг: 0 / 0
(_мод)
    #35809296
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов_модСергей ВаскецовУ меня бывали циклы в похожей ситуации. Ничего страшного не было.
согласен
а как с памятью? создаете новые классы при рекурсии или используете устаревший кеш?
классы = экземпляры
...
Рейтинг: 0 / 0
(_мод)
    #35809878
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават ЮсифовНет. ЕАВ имеет приумещества для классификации.
если сделать жестко, то придется продублировать ИД, Наим в отдельной таблице и махаться с синхронизацией и нецелостностью технической в виде вьюшки.
Конкретно: все объекты всех типов хранятся в двух таблицах: список самих объектов и св-ва объектов. Никаких проблем с целостностью нет и вьюшек нет.
...
Рейтинг: 0 / 0
(_мод)
    #35809884
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават Юсифова как с памятью? создаете новые классы при рекурсии или используете устаревший кеш?
при навигации один и тот же модуль вызывается рекурсивно. ессно памяти может не хватить, но при нынешней технике не вижу проблемы
...
Рейтинг: 0 / 0
(_мод)
    #35809902
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модпри навигации один и тот же модуль вызывается рекурсивно
Я тоже так сначала делал. Но когда стали возникать ситуации, что состояние вызывающего не дает ему возможности быть вызванным, я стал делать кастрированные (с функциональной точки зрения) новые экземпляры.
...
Рейтинг: 0 / 0
(_мод)
    #35809925
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовЕАВ имеет приумещества для классификации.
если сделать жестко, то придется продублировать ИД, Наим в отдельной таблице и махаться с синхронизацией и нецелостностью технической в виде вьюшки.
Сахават, неужели дублирование какого-то ИД и Наим сравнимо с этим?:

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

Читаю и не пойму в чем преимущества? Считаю EAV порочной практикой в принципе. Видимость легкости пополнения атрибутного состава объектов на фоне невозможности полноценного их использования. Любой отчет с использованием этих атрибутов превращается просто в геморрой, а вы про навигацию.
...
Рейтинг: 0 / 0
(_мод)
    #35809980
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Васкецов Но когда стали возникать ситуации, что состояние вызывающего не дает ему возможности быть вызванным, я стал делать кастрированные (с функциональной точки зрения) новые экземпляры.
Тоже вариант
...
Рейтинг: 0 / 0
(_мод)
    #35810541
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafmВидимость легкости пополнения атрибутного состава объектов на фоне невозможности полноценного их использования. Любой отчет с использованием этих атрибутов превращается просто в геморрой, а вы про навигацию.
Новые объекты и/или св-ва вводятся как раз для их "полноценного использования" (причем мгновенного). Никаких проблем с отчетами пока не наблюдалось.
...
Рейтинг: 0 / 0
(_мод)
    #35811039
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецов_модпри навигации один и тот же модуль вызывается рекурсивно
Я тоже так сначала делал. Но когда стали возникать ситуации, что состояние вызывающего не дает ему возможности быть вызванным, я стал делать кастрированные (с функциональной точки зрения) новые экземпляры.
А говорили с циклическими релейшнами нет проблем :)
Тут уж либо кастраты в виде объектов без релейшн, либо новая копия всех объектов :(
в принципе можно в пожарном порядке временно отключать мешающие циклические ссылки.
...
Рейтинг: 0 / 0
(_мод)
    #35811075
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmСахават ЮсифовЕАВ имеет приумещества для классификации.
если сделать жестко, то придется продублировать ИД, Наим в отдельной таблице и махаться с синхронизацией и нецелостностью технической в виде вьюшки.
Сахават, неужели дублирование какого-то ИД и Наим сравнимо с этим?:

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

Читаю и не пойму в чем преимущества? Считаю EAV порочной практикой в принципе. Видимость легкости пополнения атрибутного состава объектов на фоне невозможности полноценного их использования. Любой отчет с использованием этих атрибутов превращается просто в геморрой, а вы про навигацию.
С ЕАВ очень удобная классификация и хошь не хошь не привязываешься к наименованиям полей таблиц. А так можно с этой же метаструктурой генерировать плоские таблицы и работать с ними.
Я эту возможность оставляю. пока никак с реентерабельностью не разберусь, ошибка где то в логике. :(
...
Рейтинг: 0 / 0
(_мод)
    #35811210
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов пока никак с реентерабельностью не разберусь, ошибка где то в логике. :(
фу, тупая ошибка была :)
...
Рейтинг: 0 / 0
(_мод)
    #35811223
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифовв принципе можно в пожарном порядке временно отключать мешающие циклические ссылки.
на этом остановлюсь, правда формы дальше по циклу уже модальные :(
...
Рейтинг: 0 / 0
(_мод)
    #35811235
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовА говорили с циклическими релейшнами нет проблем :)
Я писал, что ничего страшного нет. Любая циклическая зависимость всегда требует своеобразного подхода.

Сахават ЮсифовТут уж либо кастраты в виде объектов без релейшн
Просто у экземпляра признак, что он "ущербный", он много чего не делает (например, сериализоваться ему запрещено в нашем случае) и умрет сам, как только в нем не будет необходимости.

Сахават Юсифовв принципе можно в пожарном порядке временно отключать мешающие циклические ссылки.
В начале так и делали.
...
Рейтинг: 0 / 0
(_мод)
    #35811241
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифовправда формы дальше по циклу уже модальные :(
Вот это и есть первая но не единственная беда.
...
Рейтинг: 0 / 0
(_мод)
    #35811269
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ВаскецовСахават Юсифовправда формы дальше по циклу уже модальные :(
Вот это и есть первая но не единственная беда.
сказал а, скажи б
что там еще плохого будет?
...
Рейтинг: 0 / 0
(_мод)
    #35811336
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модКонкретно: все объекты всех типов хранятся в двух таблицах: список самих объектов и св-ва объектов. Никаких проблем с целостностью нет и вьюшек нет.

Значит вы внешние ключи держите в таблице свойств?
...
Рейтинг: 0 / 0
(_мод)
    #35811352
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифовчто там еще плохого будет?
Ну, потенциально любое состояние формы, когда она не готова принять навигацию. Например, наличие несохраненных изменений.
...
Рейтинг: 0 / 0
(_мод)
    #35811489
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават ЮсифовЗначит вы внешние ключи держите в таблице свойств?
В метаописании как ссылки на сущности или классификаторы
...
Рейтинг: 0 / 0
(_мод)
    #35811703
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ВаскецовСахават Юсифовчто там еще плохого будет?
Ну, потенциально любое состояние формы, когда она не готова принять навигацию. Например, наличие несохраненных изменений.
Так. ВСЕ с этим. Никакик кастратов, никакой лишней памяти. Никаких циклов. Всего этого больше НЕТ. Неправильная парадигма визуализации была. Поменял.
...
Рейтинг: 0 / 0
(_мод)
    #35811717
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модСахават ЮсифовЗначит вы внешние ключи держите в таблице свойств?
В метаописании как ссылки на сущности или классификаторы
я внешние ключи держу в отдельной таблице.
10 таблиц базовых

Свойство

Тип
Тип_Свойство
Тип_ВнешниеСсылки

Объект
Объект_Свойство
Объект_ВнешниеСсылки

Классификатор
Классификатор_Свойство
Классификатор_Объект
...
Рейтинг: 0 / 0
(_мод)
    #35811728
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовВСЕ с этим
Юзеры косяки найдут, можно не сомневаться. :)
...
Рейтинг: 0 / 0
(_мод)
    #35812081
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm Любой отчет с использованием этих атрибутов превращается просто в геморрой, а вы про навигацию.
Прикрутил репорт дизайнер девок. Очень даже просто делаются отчеты. :)
Накладная генерируется динамически. :) Запоминается схема динамического датасет и все. НЕТ проблем. :)
...
Рейтинг: 0 / 0
(_мод)
    #35812502
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават Юсифов10 таблиц базовых
многовато будет. для метаописания достаточно 1 таблицы
...
Рейтинг: 0 / 0
(_мод)
    #35812693
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модСахават Юсифов10 таблиц базовых
многовато будет. для метаописания достаточно 1 таблицы
в этих таблицах и метаописание и сами данные
...
Рейтинг: 0 / 0
(_мод)
    #35812763
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов_модСахават Юсифов10 таблиц базовых
многовато будет. для метаописания достаточно 1 таблицы
в этих таблицах и метаописание и сами данные
все можно сунуть в одну таблицу
но это уже маразм по моему
я все еще собираюсь сгенерировать нормальные таблицы и связи для предметней области. По хорошему в метаописании СКЛ сервера не хватает не так много - разделение на ссылочную целостность и релейшн, сложные констрейнты между таблицами (assert) и мелочи типа как показать (вся эта хрень была у интербейзе). А так можно воще не держать метаописание свое, токо сделать ЕАВ для всех таблиц на допполя пользователя.
...
Рейтинг: 0 / 0
(_мод)
    #35812843
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов
По хорошему в метаописании СКЛ сервера не хватает не так много - разделение на ссылочную целостность и релейшн, сложные констрейнты между таблицами (assert) и мелочи типа как показать (вся эта хрень была у интербейзе).
расшифруй
...
Рейтинг: 0 / 0
(_мод)
    #35812892
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Сахават Юсифов
По хорошему в метаописании СКЛ сервера не хватает не так много - разделение на ссылочную целостность и релейшн, сложные констрейнты между таблицами (assert) и мелочи типа как показать (вся эта хрень была у интербейзе).
расшифруй
чего?
...
Рейтинг: 0 / 0
(_мод)
    #35812915
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовPetro123Сахават Юсифов
По хорошему в метаописании СКЛ сервера не хватает не так много - разделение на ссылочную целостность и релейшн, сложные констрейнты между таблицами (assert) и мелочи типа как показать (вся эта хрень была у интербейзе).
расшифруй
чего?
чего не хватает в метаданных СУБД (в служебных схемах в оракле или системной БД сиквела)
...
Рейтинг: 0 / 0
(_мод)
    #35813169
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават Юсифовв этих таблицах и метаописание и сами данные
??????? (может отсюда и проблемы ?)
...
Рейтинг: 0 / 0
(_мод)
    #35813179
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават Юсифоввсе можно сунуть в одну таблицу
метаописание - в одну
данные - в две, 4, 6 и т.д
...
Рейтинг: 0 / 0
(_мод)
    #35813193
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123чего не хватает в метаданных СУБД (в служебных схемах в оракле или системной БД сиквела)
метаданные СУБД описывают стр-ру РБД, метаданные прикладной системы - объекты системы. разные вещи просто
...
Рейтинг: 0 / 0
(_мод)
    #35813330
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модPetro123чего не хватает в метаданных СУБД (в служебных схемах в оракле или системной БД сиквела)
метаданные СУБД описывают стр-ру РБД, метаданные прикладной системы - объекты системы. разные вещи просто
у кого как.
У меня метаданные СУБД описывают логическую структуру объектов Системы .
Например: мастер - детайль, FK, ограничения поля данных, и т.д.

В случае EAV там для этого нет места, поэтому и нужно городить метаструктуру, то бишь классификатор.
ЗЫ. Конечно это холивар и бесконечный спор.
Удачи!
...
Рейтинг: 0 / 0
(_мод)
    #35813541
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
У меня метаданные СУБД описывают логическую структуру объектов Системы .
Например: мастер - детайль Как это СУБД делает?
...
Рейтинг: 0 / 0
(_мод)
    #35813547
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модСахават Юсифоввсе можно сунуть в одну таблицу
метаописание - в одну
данные - в две, 4, 6 и т.д

Свойство

Тип
Тип_Свойство
Тип_ВнешниеСсылки

Объект
Объект_Свойство
Объект_ВнешниеСсылки

Классификатор
Классификатор_Свойство
Классификатор_Объект

Кроме красных (там объекты), остальные метаданные.
Как в одной таблице описать типы, их структуру (совйства, ссылки, классификацию)?
покажи ка
...
Рейтинг: 0 / 0
(_мод)
    #35813630
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123У меня метаданные СУБД описывают логическую структуру объектов Системы .
Ошибка - РБД - это модель данных (табличная !) реальных объектов произвольной и более сложной стр-ры. МД строится для того чтобы можно было манипулировать св-ми объектов стандартным образом, т.е. посредством рел. алгебры. Прямое описание объектов посредством метаописания - это отказ от РМД и соотв. алгебры. - применяется в определенных целях.
...
Рейтинг: 0 / 0
(_мод)
    #35813647
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават ЮсифовКак в одной таблице описать типы, их структуру (совйства, ссылки, классификацию)?
покажи ка
имя класса
имя св-ва
тип св-ва или имя классификатора или имя класса
порядковый номер св-ва
видимый/невидимый/
обязательный/не обязателный/
вычисляемое значение - формула
значение по умолчанию - формула
ограничения на значение - формула
ну и т.д
если св-во = список то все то же самое рекурсивно
...
Рейтинг: 0 / 0
(_мод)
    #35813669
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модPetro123У меня метаданные СУБД описывают логическую структуру объектов Системы .
Ошибка - РБД - это модель данных (табличная !) реальных объектов произвольной и более сложной стр-ры.

=== да! Плоская УПРОЩЁННАЯ модель реального мира (как любая другая модель)

МД строится для того чтобы можно было манипулировать св-ми объектов стандартным образом, т.е. посредством рел. алгебры.

== я не против. На то она и УПРОЩАЕТ свойства и взаимосвязи

Прямое описание объектов посредством метаописания - это отказ от РМД и соотв. алгебры. - применяется в определенных целях.

====== вот это я не понял.



модель БД для работы рел.алгебры я не трогаю.
Дело в том, что помимо метамодели так сказать, для поддержки работы РБД, там же (в табличном виде) описывается бизнес-логика и модель предметной области.
Например, отношение многие ко многим в сущностях Товары - Заказчики описаны в табличном виде в системных таблицах (поле owner, поле ссылочное, вид связи, ....).
IMHO
...
Рейтинг: 0 / 0
(_мод)
    #35813686
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
Например, отношение многие ко многим в сущностях Товары - Заказчики описаны в табличном виде в системных таблицах (поле owner, поле ссылочное, вид связи, ....).

поправлюсь. Если вы проектировали БД на декларативной ссылочной целостности (напр. через директиву cascade)
...
Рейтинг: 0 / 0
(_мод)
    #35813695
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Например, отношение многие ко многим в сущностях Товары - Заказчики описаны в табличном виде в системных таблицах (поле owner, поле ссылочное, вид связи, ....).
IMHO
тогда д.б. описана привязка сущностей к таблицам БД:
Заказчики = tabl1+tabl2 и т.д
тогда операции с сущностями можно транслировать в sql
в случае EAV привязка не описывается - она стандартная для всех сущностей и sql стандартный
...
Рейтинг: 0 / 0
(_мод)
    #35813763
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модPetro123Например, отношение многие ко многим в сущностях Товары - Заказчики описаны в табличном виде в системных таблицах (поле owner, поле ссылочное, вид связи, ....).
IMHO
тогда д.б. описана привязка сущностей к таблицам БД:
Заказчики = tabl1+tabl2 и т.д
тогда операции с сущностями можно транслировать в sql

зачем это надо? Чтобы соединить ООП клиента с РСУБД?
Это никому не надо.
Привязка сущностей к таблицам происходит на другом уровне.

Вар.1 - БЛ в виде пакетов и процедур в них на сервере.

Тогда пакет оракал = класс = сущность. И все методы с клиента и с класа клиента оперируют с метамоделью в виде пакетов-классов.

Вар.2 - БЛ в виде библиотек на клиенте.
Уже давно реализовано в клиентских библитеках и программист на клиенте оперирует не сущностями, а физической структурой БД через SQL строя объекты этим ЯП (Join)
...
Рейтинг: 0 / 0
(_мод)
    #35813837
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Тогда пакет оракал = класс = сущность.
Ну это-то понятно :) Новый класс - пиши новый пакет (и еще кучу кода). Но мы как раз обсуждаем способы этого избежать.
...
Рейтинг: 0 / 0
(_мод)
    #35813860
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модPetro123Тогда пакет оракал = класс = сущность.
Ну это-то понятно :) Новый класс - пиши новый пакет (и еще кучу кода). Но мы как раз обсуждаем способы этого избежать.
а это возможно?
Пакет это не только имя, но и методы CRUD.
---
Проблема в том, что класс=данные+методы_для_работы_с_ними.
Допустим вы создали супер-пупер модель по добавлению сущностей.
А методы? Что с ними делать?
Перебросить метод "ЗакрытьОперДень" на серверПриложения?
...
Рейтинг: 0 / 0
(_мод)
    #35813868
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модНо мы как раз обсуждаем способы этого избежать.
избежать очень просто - сериализовывать классы в БЛОБ, и потом рожать их обратно на клиента.
Правда сервер тут ни при чём (как при EAV)
...
Рейтинг: 0 / 0
(_мод)
    #35814137
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123а это возможно?
А что мы здесь обсуждаем ? :)
Petro123
Допустим вы создали супер-пупер модель по добавлению сущностей.
Уже создали
Petro123А методы? Что с ними делать?
Общие наследуются, оригинальные добавляются вместе с сущностями.
...
Рейтинг: 0 / 0
(_мод)
    #35814223
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод
оригинальные добавляются вместе с сущностями.
пока не понял каким образом.
Нет так?
_модНовый класс - пиши новый пакет (и еще кучу кода).
откуда в вашей модели появились Методы? Какое физическое воплощение на сервере имеет метод?
...
Рейтинг: 0 / 0
(_мод)
    #35814354
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123откуда в вашей модели появились Методы? Какое физическое воплощение на сервере имеет метод?
можно так: хранимки на сервере, в описании сущности - список методов и соотв. имена хранимок
можно так же подменить стандартные методы
зы на практике использовал один раз, в основном обходятся стандартными
...
Рейтинг: 0 / 0
(_мод)
    #35825626
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пойду до конца. Посмотрим что ЕАВ может дать.
...
Рейтинг: 0 / 0
(_мод)
    #35827267
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават ЮсифовПойду до конца. Посмотрим что ЕАВ может дать.
1. Объекты ЕАВ
- предметы по типам
готовые изделия
детали
сборки
материалы
комплектующие
...........
- склады
- контрагенты
- МОЛ
............
2. Операции ЕАВ
- накладные
- счета
- платежи
........
3. классификаторы не ЕАВ
- типы предметов
- виды договоров
- типы клиентов
ну и т.д

4 Конструкторские спецификации не ЕАВ
...
Рейтинг: 0 / 0
(_мод)
    #35827993
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модСахават ЮсифовПойду до конца. Посмотрим что ЕАВ может дать.
1. Объекты ЕАВ
- предметы по типам
готовые изделия
детали
сборки
материалы
комплектующие
...........
- склады
- контрагенты
- МОЛ
............

Это понятно.

2. Операции ЕАВ
- накладные
- счета
- платежи
........

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

3. классификаторы не ЕАВ
- типы предметов
- виды договоров
- типы клиентов
ну и т.д

Все что может быть перечислимым и образующим для отношения (ссылки), у меня ЕАВ.

4 Конструкторские спецификации не ЕАВ

Почему?

Ввел 3 типа методов
1. Программный код - немспейс, класс, метод, аргументы (через рефлекцию)
2. Хранимка - схема, процедура, параметры
3. SQL - файл, параметры
...
Рейтинг: 0 / 0
(_мод)
    #35829230
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Сахават Юсифов]Наверное, под операцией понимается действия, меняющие определенные свойства объектов.
В принципе да - некоторое событие, которое привязано ко времени и что-то меняет в окружающей среде. Внешне оформлено как документ произвольной стр-ры , т.е. ЕАВ
зы А что "Почему ?" - не понял последнего вопроса
...
Рейтинг: 0 / 0
(_мод)
    #35829684
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

4 Конструкторские спецификации не ЕАВ


Почему?
...
Рейтинг: 0 / 0
(_мод)
    #35829695
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот как описываю методы. Ниче себе получилось. :)
...
Рейтинг: 0 / 0
(_мод)
    #35829738
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават Юсифов4 Конструкторские спецификации не ЕАВ
Почему?
Это часть фиксированной модели данных - контструкторский граф. Его вершины - предметы, их св-ва - ЕАВ, а дуги графа имеют заданный моделью набор св-в. Таких фиксир. частей много - например проводки, остатки на счетах и т.д.
...
Рейтинг: 0 / 0
(_мод)
    #35829752
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И метод этот появляется на форме типа ввиде кнопки
...
Рейтинг: 0 / 0
(_мод)
    #35829757
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модСахават Юсифов4 Конструкторские спецификации не ЕАВ
Почему?
Это часть фиксированной модели данных - контструкторский граф. Его вершины - предметы, их св-ва - ЕАВ, а дуги графа имеют заданный моделью набор св-в. Таких фиксир. частей много - например проводки, остатки на счетах и т.д.
Понятно. В принципе конструкты которые уже точно определены можно описать статически.
...
Рейтинг: 0 / 0
(_мод)
    #35829804
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов_модСахават Юсифов4 Конструкторские спецификации не ЕАВ
Почему?
Это часть фиксированной модели данных - контструкторский граф. Его вершины - предметы, их св-ва - ЕАВ, а дуги графа имеют заданный моделью набор св-в. Таких фиксир. частей много - например проводки, остатки на счетах и т.д.
Понятно. В принципе конструкты которые уже точно определены можно описать статически.

Теперь, если сделать галочку для типов "Способ хранения" ЕАВ{Да, Нет}, Если "Нет" вычислить все зависимости, найти разбиение и сгенерировать для этого разбиения структуру БД, заменить ЕАВ вызовы этих структур на плоские эквиваленты, то в конечном итоге получим плоскую структуру + ЕАВ для изменчивых свойств объектов плоских структур. И вопросы о скорости и т.д. уйдут в небытие. Правильно?
...
Рейтинг: 0 / 0
(_мод)
    #35830163
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават ЮсифовПравильно?
Можно попробывать
...
Рейтинг: 0 / 0
(_мод)
    #35849275
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жуть что творится :)
Эх, разобраться бы красиво с адекватным описанием загрузки корневых типов (типа интеллектуальный пейджинг, имеющий адекватное понимание для предмета-типа)
...
Рейтинг: 0 / 0
(_мод)
    #35849361
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЭх, разобраться бы красиво с адекватным описанием загрузки корневых типов (типа интеллектуальный пейджинг, имеющий адекватное понимание для предмета-типа)

В WPF в этом плане все красиво
...
Рейтинг: 0 / 0
(_мод)
    #35849367
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaавторЭх, разобраться бы красиво с адекватным описанием загрузки корневых типов (типа интеллектуальный пейджинг, имеющий адекватное понимание для предмета-типа)

В WPF в этом плане все красиво
что, впф понимает семантику предметной области?
...
Рейтинг: 0 / 0
(_мод)
    #35850912
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават ЮсифовЖуть что творится :)
Это правда. Боюсь, вам надо начинать все с начала - с модели предметной области.
...
Рейтинг: 0 / 0
(_мод)
    #35851406
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Это правда. Боюсь, вам надо начинать все с начала - с модели предметной области

И закладывать в архитектуру SMB, BPM, онтологии и пр. фигню. Должно красиво получиться. А если еще и клиент будет работать в браузере + интегрировать учетную софтинку с виртуальным офисом и сервисами - ну просто сказка. ;)
...
Рейтинг: 0 / 0
(_мод)
    #35851586
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621И закладывать в архитектуру SMB, BPM, онтологии и пр. фигню.
Ну наверное не в архитектуру, а именно в модель предметной области. Проще говоря - определиться с объектами, их классификацией, поведением и прочее. А то на скринах я вижу (и не только я) какой то сумбур.
guest_20040621
А если еще и клиент будет работать в браузере + интегрировать учетную софтинку с виртуальным офисом и сервисами - ну просто сказка. ;)
Ну это как раз не очень большая проблема.
...
Рейтинг: 0 / 0
(_мод)
    #35851660
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модСахават ЮсифовЖуть что творится :)
Это правда. Боюсь, вам надо начинать все с начала - с модели предметной области.
Предметная область не моя проблема. Если я дам крен в какую то сторону то получу 1с или что то еще. Сейчас задача - описать предметную область, сгенерировать схему БД, сделать маппинг на ЕАВ, по сгенерированной схеме построить GUI, описать возможные схемы пейджинга-фильтрации, придумать способ загрузки связей по навигации и т.д.
...
Рейтинг: 0 / 0
(_мод)
    #35851746
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Ну наверное не в архитектуру, а именно в модель предметной области.

Не в модель, а в архитектуру.

> Ну это как раз не очень большая проблема.

Хм... да вот как раз проблема. Не в клиенте, а в интеграции всего зоопарка. И айпи-телефония, и удаленные файловые хранилища, и он-лайн редакторы, и информационная система, и любые другие внешние сервисы - и все это в одном контексте. Так себе не проблема.
...
Рейтинг: 0 / 0
(_мод)
    #35851859
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> а в интеграции всего зоопарка...
Хе, получется интересные моменты - берешь чужую БД, сгенерируешь свою схему, сгенерируешь все навигационные связи и заливаешь в ЕАВ и получаешь базовый функционал чужой схемы.
через пару итераций есть полная интеграция зоопарка и базовый функционал. Если доступны обрабатывающие методы, то и вес функционал.
Сегодня показал в концерне, тут же решили отказаться от какого-то "план-дизайнера", не знаю что она там делает, но их люди знают.
За 30 минут сгенерировали задачу (сами) для анализа отрасли.
...
Рейтинг: 0 / 0
(_мод)
    #35851893
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модЭто правда. Боюсь, вам надо начинать все с начала - с модели предметной области.
мод, можно поподробнее? что вы имеете под "предметная область"?
У меня "предметная область" - генерация программы (каркаса, с возможностью расширения через сервисы) из описания "предметной области" пользователя.
...
Рейтинг: 0 / 0
(_мод)
    #35852056
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифовберешь чужую БД, сгенерируешь свою схему, сгенерируешь все навигационные связи и заливаешь в ЕАВ и получаешь базовый функционал чужой схемы.

как то просто все получается Сахават. Просто не думаю что функционал можно представить в виде модели БД. Она же еще и работать должна, а не просто статически отражать состотояние объектов, как быть с этим?
...
Рейтинг: 0 / 0
(_мод)
    #35852120
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Хе, получется интересные моменты

Если эта база данных удовлетворяет необходимому минимуму условий - да, без проблем. Вот только где вы видели такие базы данных? Как минимум данные должны быть представимы в виде (управляющий идентификатор, идентификатор состояния, идентификатор контекста (вендор данных, идентификатор модели, идентификатор сущности, идентификатор экземпляра сущности)). Причем, контекст и состояние - очень упрощенно идентификаторы, вообще говоря, зависимости могут быть не тривиальные. Фишка в том, что контекст как правило жестко задается при проектировании (в частости, включает в себя весь геморрой, по поводу которого в основном и возникают вопросы: права доступа, локализация, распределенная структура, классификация и пр.), а про состояния даже и вспоминать не хочется.

> полная интеграция зоопарка

Как вы себе это представляете, если у каждого внешнего сервиса - уникальная метамодель, совершенно не обязательно сопоставимая с вашей?

> За 30 минут сгенерировали задачу (сами) для анализа отрасли.

Ай, молодцы. ;) Как, интересно, они модель отрасли за полчаса умудрились построить?
...
Рейтинг: 0 / 0
(_мод)
    #35852138
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621,

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

Ребята смоделировали определенную задачу для определенного аспекта и остались довольны.

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

Ладно немного доделаю еще тогда видно будет еуда дать крен.
...
Рейтинг: 0 / 0
(_мод)
    #35852139
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmСахават Юсифовберешь чужую БД, сгенерируешь свою схему, сгенерируешь все навигационные связи и заливаешь в ЕАВ и получаешь базовый функционал чужой схемы.

как то просто все получается Сахават. Просто не думаю что функционал можно представить в виде модели БД. Она же еще и работать должна, а не просто статически отражать состотояние объектов, как быть с этим?
Что такое "работать"? Что то встроено, что то встроят. Как Искра "работает"?
...
Рейтинг: 0 / 0
(_мод)
    #35852342
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават ЮсифовСейчас задача - описать предметную область, сгенерировать схему БД, сделать маппинг на ЕАВ, по сгенерированной схеме построить GUI, описать возможные схемы пейджинга-фильтрации, придумать способ загрузки связей по навигации и т.д.
Насколько я понял - ваша предметная область - производство. Управление производством
подразумевает некоторую модель этого управления, которая в свою очередь определяет
набор объектов, событий, методов и т.д. Все это хозяйство преобразуется в вычислительную модель - данные и программы. Вот как-то так.
...
Рейтинг: 0 / 0
(_мод)
    #35852345
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621Хм... да вот как раз проблема. Не в клиенте, а в интеграции всего зоопарка.
С этим согласен - универсальных методов нет.
...
Рейтинг: 0 / 0
(_мод)
    #35852579
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовiscrafmСахават Юсифовберешь чужую БД, сгенерируешь свою схему, сгенерируешь все навигационные связи и заливаешь в ЕАВ и получаешь базовый функционал чужой схемы.

как то просто все получается Сахават. Просто не думаю что функционал можно представить в виде модели БД. Она же еще и работать должна, а не просто статически отражать состотояние объектов, как быть с этим?
Что такое "работать"? Что то встроено, что то встроят.
на примере того же планиррования...
Был атрибут ETA. Понадобилось в целях планирования более детально разбить на этапы: ETA Port + ETA Stock. Добавили атрибуты. И что? На этих атрибутах куча логики расчетов завязано, она то откуда таким же легким движением возьмется?

p.s. ETA - Estimated Time Arrived
...
Рейтинг: 0 / 0
(_мод)
    #35852633
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmСахават ЮсифовiscrafmСахават Юсифовберешь чужую БД, сгенерируешь свою схему, сгенерируешь все навигационные связи и заливаешь в ЕАВ и получаешь базовый функционал чужой схемы.

как то просто все получается Сахават. Просто не думаю что функционал можно представить в виде модели БД. Она же еще и работать должна, а не просто статически отражать состотояние объектов, как быть с этим?
Что такое "работать"? Что то встроено, что то встроят.
на примере того же планиррования...
Был атрибут ETA. Понадобилось в целях планирования более детально разбить на этапы: ETA Port + ETA Stock. Добавили атрибуты. И что? На этих атрибутах куча логики расчетов завязано, она то откуда таким же легким движением возьмется?

p.s. ETA - Estimated Time Arrived
фигня
вводится новый узел в классификатрое и описывается поведение
...
Рейтинг: 0 / 0
(_мод)
    #35869543
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И так по всему графу, начиная с любого узла, с переходом через агрегатные типы сверху и снизу. Агрегация и фильтация через все связи.
...
Рейтинг: 0 / 0
(_мод)
    #35869547
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно , например, взять контрагента и посмотреть в какие сборки входят купленные у него изделия. Или взять бракованные изелия и найти поставщиков материалов и изготовителя и т.д.
...
Рейтинг: 0 / 0
(_мод)
    #35884172
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
undefinedМСУ в сандалиях,

Да ты, оказывается,сосед!! Я б подошел,еслт коняк не туфтовый. :)
С новым годом, народ!!!!!!!
...
Рейтинг: 0 / 0
(_мод)
    #35884174
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что за фигня , блин, автоматом откуда то идет старое сообщение

Вот навигационный граф типа.
...
Рейтинг: 0 / 0
(_мод)
    #35884597
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
undefinedМСУ в сандалиях,

Да ты, оказывается,сосед!! Я б подошел,еслт коняк не туфтовый. :)
С новым годом, народ!!!!!!!
...
Рейтинг: 0 / 0
(_мод)
    #35884601
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во МСУ прицепился, блин :(

Вот так будет покарасивше и концептуально правильно.
"Товар" и "Услуга" через агрегирующий тип "Товары и Услуги" (виртуальный, просто узел в классификаторе) связываются с типом "Счет фактура".
...
Рейтинг: 0 / 0
(_мод)
    #35987072
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошло уже 1.5 месяца оказывается.
Теперь реально могу поспорить с любым товарищем о сокрости работы системы построенной на ЕАВ. Скорость Отличная. :)
...
Рейтинг: 0 / 0
(_мод)
    #35987407
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовПрошло уже 1.5 месяца оказывается.
Теперь реально могу поспорить с любым товарищем о сокрости работы системы построенной на ЕАВ. Скорость Отличная. :)
Я хоть и не Эйнштейн, но все таки замечу об относительности понятия "скорость работы". Не сомневаюсь, что для работы с единичными записями и связанными с ними, в целях поиска, анализа и расчета информации, скорости EAV будет достаточно. Любая же попытка выполнить на Вашей системе запрос с охватом большого массива информации с сложной фильтрацией или аггрегацией приведет к большим и непобедимым тормозам. Если Вашим пользователям не нужно выполнять аналитику в разрезе всех контрагентов, материалов по годам, это не означает, что EAV быстро работает :)
...
Рейтинг: 0 / 0
(_мод)
    #35987855
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS,

Это все теоретизация. У мня на милллионах записей тормоза такие же как и для обычных таблиц.
...
Рейтинг: 0 / 0
(_мод)
    #35987862
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И не надо выдмывать что мои клиенты ввожят а чего нет. в МЕС данные генерируюется и учитывается на уровне производственных операций. Временная единица нормирования - секунды.
...
Рейтинг: 0 / 0
(_мод)
    #35987949
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЛюбая же попытка выполнить на Вашей системе запрос с охватом большого массива информации с сложной фильтрацией или аггрегацией приведет к большим и непобедимым тормозам. Если Вашим пользователям не нужно выполнять аналитику в разрезе всех контрагентов, материалов по годам, это не означает, что EAV быстро работает
Контролы Девок(именно их Сахават и развешивает в постах), позволяют фильтрацию,группировку ,аггрегацию и аналитику замечательно делать на клиенте
...
Рейтинг: 0 / 0
(_мод)
    #35987962
ддддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Миллион записей для современных серверов - это не объем.
...
Рейтинг: 0 / 0
(_мод)
    #35988040
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вощем, все это реально проверено и гут.
...
Рейтинг: 0 / 0
(_мод)
    #35988251
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

Все это делаетеся и на сервере и на клиенте + пейджинг + JIT загрузка данных
...
Рейтинг: 0 / 0
(_мод)
    #35988398
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават Юсифоввощем, все это реально проверено и гут.
Чудес не бывает. Поиск объектов по их св-вам возжожен только вумя способами: полный перебор или поиск по индексу. 1-й способ годится для небольших объемов, второй требует полной индексации всех св-в. Поскольку в ЕАВ все св-ва лежат в одной таблице, то и индекс на все один.
Накладные расходы только на многократное объединение таблицы св-в с таблицей самих объектов по ИД - чем больше требуется св-в в запросе тем больше расходы. Такая вот механика.
...
Рейтинг: 0 / 0
(_мод)
    #35988511
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНакладные расходы только на многократное объединение таблицы св-в с таблицей самих объектов по ИД - чем больше требуется св-в в запросе тем больше расходы. Такая вот механика.
Объединять можно и на клиенте с виртуализацией в гриде,накладные расходы будут минимальны.
...
Рейтинг: 0 / 0
(_мод)
    #35988529
дддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это как?
на каждое свойство свой запрос?
...
Рейтинг: 0 / 0
(_мод)
    #35988723
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модСахават Юсифоввощем, все это реально проверено и гут.
Чудес не бывает. Поиск объектов по их св-вам возжожен только вумя способами: полный перебор или поиск по индексу. 1-й способ годится для небольших объемов, второй требует полной индексации всех св-в. Поскольку в ЕАВ все св-ва лежат в одной таблице, то и индекс на все один.
Накладные расходы только на многократное объединение таблицы св-в с таблицей самих объектов по ИД - чем больше требуется св-в в запросе тем больше расходы. Такая вот механика.

В ЕАВ все свойства в ОДНОЙ таблице НЕ лежат. Они в разных таблицах и соответственно с разными индексами.
Максимальное количество джойн к таблице объектов в моем случае 8 (типы данных - строка, целое, число, деньги, дата, логическое, образ, объект)

Механика очень простая и эффективность с учетом пейджинга типа и ленивой загрузки результатов навигации очень даже хорошая.
...
Рейтинг: 0 / 0
(_мод)
    #35988754
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Система генерирует для каждой виртуальной таблицы свою хранимку, потому накладные расходы для формирования самого запроса отсутствуют.
Есть и версия с генерацией обычных реляционных таблиц с нисходящими релейшнами( остальные навигационные релейшны формируютс уже в системе).
Так что, при малоизменчивой предметной области (или по мере уменьшения вариабельности) можно переключиться в классический режим поставив галочу..
...
Рейтинг: 0 / 0
(_мод)
    #35988820
дддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават ЮсифовСистема генерирует для каждой виртуальной таблицы свою хранимку, потому накладные расходы для формирования самого запроса отсутствуют.
Есть и версия с генерацией обычных реляционных таблиц с нисходящими релейшнами( остальные навигационные релейшны формируютс уже в системе).
Так что, при малоизменчивой предметной области (или по мере уменьшения вариабельности) можно переключиться в классический режим поставив галочу..

Как оказывается все просто.
А люди - идиоты: всякие SAP, OEBS, BAAN покупают...
...
Рейтинг: 0 / 0
(_мод)
    #35988886
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дддддд,

конечно идиоты
...
Рейтинг: 0 / 0
(_мод)
    #35990793
дддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават Юсифовдддддд,

конечно идиоты

А можно взглянуть на прай-лист твоей системы?
...
Рейтинг: 0 / 0
(_мод)
    #35990891
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават ЮсифовВ ЕАВ все свойства в ОДНОЙ таблице НЕ лежат.
У кого как :)
Максимальное количество джойн к таблице объектов в моем случае 8[/quot]
Максимальное количество джойн определяется числом св-в однако
...
Рейтинг: 0 / 0
(_мод)
    #35991238
дддддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_модСахават ЮсифовВ ЕАВ все свойства в ОДНОЙ таблице НЕ лежат.
У кого как :)
Максимальное количество джойн к таблице объектов в моем случае 8
Максимальное количество джойн определяется числом св-в однако

+1
...
Рейтинг: 0 / 0
(_мод)
    #35991939
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дддддд,

это скорее -1. Так как, многими типами данных тогда придется распрощаться или загнать в один универсальный, что усложняет визуализацию, типизацию и т.д.
...
Рейтинг: 0 / 0
(_мод)
    #35991951
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

Максимальное количество определяется количеством типов данных. их у меня 8.
...
Рейтинг: 0 / 0
(_мод)
    #35991956
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имелось ввиду количество джойнов.
...
Рейтинг: 0 / 0
(_мод)
    #35991964
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дддддд,
Сама система как объект торговли не рассмативается пока. Важно что на ней строится.
...
Рейтинг: 0 / 0
(_мод)
    #35995171
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну че? никто не хочет драться за чистоту коодовых конюшен????
или бум грид обсуждать?? как раскрасить??
...
Рейтинг: 0 / 0
(_мод)
    #36467668
все эти танцы вокруг еав закончились фреймворком
...
Рейтинг: 0 / 0
(_мод)
    #36467669
на нем написан мес
и пишутся другие вещи
...
Рейтинг: 0 / 0
(_мод)
    #36467829
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават, мои поздравления и успехов! В добрый путь, как говорится.
...
Рейтинг: 0 / 0
(_мод)
    #36467976
iscrafm,

спасибо
заходи а гости, обмоем :)
и воще тут дела такие, один не управляюсь
...
Рейтинг: 0 / 0
(_мод)
    #36468091
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmСахават, мои поздравления и успехов! В добрый путь, как говорится.+1, присоединяюсь к поздравлениям и пожеланиям, удачи!
...
Рейтинг: 0 / 0
(_мод)
    #36468736
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поздравляю !!! Молодец !!!
...
Рейтинг: 0 / 0
(_мод)
    #36469048
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Congratulations !!!! (все завидуем :) )
...
Рейтинг: 0 / 0
(_мод)
    #37024346
Левашов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
здорово! И что было дальше (через месяц, два)?
...
Рейтинг: 0 / 0
(_мод)
    #37024361
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Левашовздорово! И что было дальше (через месяц, два)?
а потом началась семейная жизнь
...
Рейтинг: 0 / 0
(_мод)
    #37024368
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

угадал :)
...
Рейтинг: 0 / 0
145 сообщений из 145, показаны все 6 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / (_мод)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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