powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Возможность Создание сущностей пользователем
60 сообщений из 60, показаны все 3 страниц
Возможность Создание сущностей пользователем
    #35912664
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приведу пример чтобы было понятнее. Потому что сформулировать тему граммотно не очень получается.

Есть например карточки товаров
Каждая карточка может иметь свой уникальный и не уникальный набор атрибутов

Задача состоит в том чтобы дать возможность пользователю через интерфейс создавать свои карточки (сущности). То есть по сути создавать таблицы

Как это лучше реализовать.
create table выполнять.

Или же

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

Или например создать таблицу универсальную с большим запасом полей анонимных. Вообщем наверное много чего можно придумать.
Наверное у каждого способа есть недостатки и достоинства. Хотелось по этому поводу получить какую нибудь фундаментальную информацию. Повторяю Даже не знаю как охарактеризовать данную тему.
Ну или у кого какой опыт есть по этому поводу тоже буду рад если поделитесь
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35912733
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxluck,

Есть еще EAV. У него свои тараканы (как и у всех перечисленных вариантов).

Ответ - что лучше использовать - можно дать только тогда, когда будет понятно ЗАЧЕМ человек создает новую сущность и ЧТО С НЕЙ будут делать.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35912768
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо переформулирую.

Задача состоит в том чтобы пользователь через интерфейс мог создавать свои сущности. То что нужны еще механизмы обработки согласен. Скажем так пусть существует механизм (алгоритм) использующий метаинформацию этих сущностей.

Метаинформация сущности это например кол-во полей и их тип. Имя таблицы. Вообщем все что описывает саму сущность. Или возможно она сама себя самоописывает.

Скажем так не лучший способ интересует, а вообще все способы какие есть. А также как это тематика вообще называется. Как можно классифицировать данную задачу.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35912816
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Как можно классифицировать данную задачу.

Набор антипаттернов проектирования. Большая такая задача, серьезная. А возникает эта задача потому, что работу архитектора базы данных пытаются выполнять люди, которые в принципе не должны и не умеют этого делать.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35912824
RodionAT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, круто.
Еще каждому пользователю дать доступ в код процедур алгоритмов - вообще полный бардак будет.
А что касается товаров - товары ведь объединены в группы, для каждой группы создать несколько полей (сущностей), которые пользователь должен заносить обязательно. но не смог бы удалять, ну а потом пусть он добавляет свои сущности. Только как их грамотно обработать?
Структура таблиц:
Товары: ТоварИД, Название, ГруппаТовараИД ......
СвойстваТовара: СвойствоИД, ГруппаТовараИД, ПользовательИД, ЗащищеноОтУдаления, ВыражениеСвойства, ТипДанныхСвойства ....
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35912850
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ваши насмешки разделяю полностью. Может проще научить пользователя. Реалиционным БД и научить писать скрипты.

Ну все же есть некий тут разумный стержень.
Создать еще один слой абстракции. Такой конструктор который намного более ограничен чем предшествуй инструмент в виде sql и средств администрирования но в тоже время намного проще.
И со своей конкретной задачей справляющийся.
Конкретно задача в примере состоит в том. чтобы.
Создавать Карточки Товара (юзерский язык )
Ну еще конкретнее. Про обработку что с ними потом можно делать.

Вот товар
Утюг
У него есть свойства
Имя, Габариты.

Есть товар
Телевизор
у него есть Имя, Габариты, + Диагональ.

Когда пользователь выбирает посмотреть все телевизоры. Пользователь видит список Телевизоров в каждом элементе списка он видит характеристики и длину диагонали тоже

По этому полю можно сортировать делать поиск. еще что то.

А когда выбирают все Утюги диагонали нет.

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

RodionAT,

Решение похоже на.
Создать виртуальную бд на базе нескольких таблиц.

То есть ГруппаТоваров - это список таблиц.
Свойство Товара - список полей.
....
Да вот тут интереснее как это все обрабатывать. Потом. Написать можно но насколько это разумно быстро и прочее.


Я вот склоняюсь к идеи. Создавать все таки таблицы create table и использовать обычный sql . А не писать фиг знает какой механизм обработки. Для этих виртуальных таблиц.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35912856
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxluckВаши насмешки разделяю полностью. Может проще научить пользователя. Реалиционным БД и научить писать скрипты.
...
Вот товар
Утюг
У него есть свойства
Имя, Габариты.

Есть товар
Телевизор
у него есть Имя, Габариты, + Диагональ.

Когда пользователь выбирает посмотреть все телевизоры. Пользователь видит список Телевизоров в каждом элементе списка он видит характеристики и длину диагонали тоже

По этому полю можно сортировать делать поиск. еще что то.
То есть ГруппаТоваров - это список таблиц.
Свойство Товара - список полей.
....
Да вот тут интереснее как это все обрабатывать. Потом. Написать можно но насколько это разумно быстро и прочее.

Я вот склоняюсь к идеи. Создавать все таки таблицы create table и использовать обычный sql . А не писать фиг знает какой механизм обработки. Для этих виртуальных таблиц.Для этого конкретного случая я бы использовал EAV + описание метаинформации (возможно тоже на EAV).

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

PS: не советую обощать этот принцип. На больших объемах данных EAV вам покажет какой он на самом деле.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35912874
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> насмешки разделяю полностью

Это не насмешки, это констатация факта.

> есть некий тут разумный стержень

Ни одного, увы.

> Создать еще один слой абстракции

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

> Вот товар

Посмотрите: Вы еще не написали ни строчки DDL, а уже сделали кучу ошибок. Утюг - это не товар. Утюг - это бытовой прибор вполне конкретного назначения. И характеристики утюга как товара ничего общего с характеристиками утюга как бытового прибора не имеют. За любым желанием дать пользователю возможность ковырять структуру данных стоит неумение проектировать. О чем я и говорил. Начните с учебников по проектированию.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35912895
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bely,

Да вот концепция EAV я не знал как это называется правильно. Когда имел в виду виртуальную Бд на основе нескольких таблиц.

Спасибо за часть ответа.

Вот этот EAV мне не нравиться. из за того. что нормальный sql летит к черту. это вообще какой гипертрофированный предельный случай нормализации. вся нормализация затратиталась на эту гипертрофированность и дальше вся нормальная привычная работа с бд летит к черту.

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

Плюс косость программирования.

Вот Теперь могу лучше сформулировать.

EAV против create table.
Почему бы не создавать таблицы через ddl.
а потом работать с ними как обычно.

Почему вы рекомендуете EAV?


А про то что утюг не товар это верно подмечено :). Хотя утюг с ценником это уже товар :)
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35912914
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да вот еще одно решение
Наследование.

Если создать абстрактный товар.


описать там общие свойства.

Абстрактный товар

tovar
id name cost

дальше наследник

custom_tovar
id -
parent_id - ид объекта от которого наследуемся.
diagonal - новый атрибут.


Тоже не знаю как этот подход грамотно называется наверное что то вроде
ООСУБД
мне кажется он более разумным.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35912928
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxluckНу все же есть некий тут разумный стержень.
Создать еще один слой абстракции.

выделить юбому пользователю собственный SandBox.

но что делать с критическим апдейтами системы - послать наработки пользователя в топку?
(многие так и делают - ИМХО это крайне некорректно)
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35912937
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нормальное решение состоит - 1.плоские таблицы (описание предметной области) + 2.ЕАV (для пользовательских расширений). Но, хорошо бы первую часть описывать (генерировать) так же собственными средствами.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35912945
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
proposed amendment,

Для критичных апдейтов придеться писать конверторы данных. Думаю это решаемо.

Еще интересный способ прочел у вас на форуме. Тоже очень интересный.

цитирую

>Все извращения,которые не укладываются в общую модель, хранил бы в поле XML(список с
>двумя полями:наименование,значение).Минимум телодвижений, и пусть себе ни в чем не
>отказывают.


Гибридные БД.
Тоже очень интересное решение.

Есть например товар с набором общих признаков.
Все дополнительные поля. Хранить в неком дополнительном поле в формате XML.

Все эти решения гораздо интереснее чем этот EAV

Но почему то именно его все вспоминают в первую очередь. И тут мне его тоже порекомендовали. Хотя если читать. Другие ветки этго форума про EAV , он далеко не однозначен. Да я и сам как то с ним сталкивался. Он работает безусловно. Но смотриться ужасно. Тех поддержка сложна. Скорость явно будет плохой. Все не прозрачно. Какой то целый движок работы с EAV надо реализовывать. Нужна реализация EAV у меня её просто нет. Самому писать не хочеться. Должен быть стандарт тогда уж. Опять же язык запросов какой то нужен специальный для EAV Фильтры группировки. Все то что есть в обычном sql.
Где это можно узнать?


Если уж мы выбираем EAV который являеться виртуальной копией БД. Тогда почему уж не использовать create table , alter table.
Зачем делать зеркало системы которая уже есть.

В случае гибридных и ОО случаев тут еще можно спорить согласен.

А вот EAV вообще являеться попыткой повторить функционал который итак представляет СУБД. (create table , alter table)
Может я ошибаюсь но мне это так видеться пока что.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35912947
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовНормальное решение состоит.

ИМХО в любом случае получится некоторое, в той или иной степени актуальное, пересечение некоторых множеств - пользовательской и родительской -

первый вопрос, что делать если родительское существенно модифицируется.

примеры (элементарные) - меняется структура директорий на сервере - пользователи плачут кровавыми слезами; оптимизируются справочники КИС - пользовательские подключенные системы валятся с ног (да мало ли таких примеров - в общем случае "обратная совместимость" при развитии систем)
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35912951
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxluckА вот EAV вообще являеться попыткой повторить функционал который итак представляет СУБД. (create table , alter table)
Может я ошибаюсь но мне это так видеться пока что.

ИМХО не то, чтобы повторить...

использовать существующий движок БД и накатать поверх него любой универсальный функционал. хороших, эффективных, решений промышленного масштаба я не знаю.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35912974
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
proposed amendmentFoxluckА вот EAV вообще являеться попыткой повторить функционал который итак представляет СУБД. (create table , alter table)
Может я ошибаюсь но мне это так видеться пока что.

ИМХО не то, чтобы повторить...

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

А откуда их знать если их нет просто и быть не может. потому что это бред.
Кто нибудь знает хорошие решения EAV какие то возможно спецификации ?

XML и ОО поддержка осуществляются некоторыми СУБД.

а вот EAV на уровне СУБД осуществлена где нибудь? Кто нибудь слышал об этом. :) Этого не может быть потому что это дублирование того Базового функционала который есть.

Что дает EAV. ? Чего не может дать ddl и dml ?

Я слышал аргументацию что вроде какие то проблемы с безопаснотью. что это плохо когда пользователь создает 200 таблиц и т.п.

может у вас есть какая нибудь буду рад услышать критику. ну или поддержку.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913019
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxluck,

Зря вы со своими определениями типа "бред" и т.д. сыплете.

Возьмем простой случай.
Описываем процесс. Допустим для этого процесса процессором может быть любой ПС с процом от П4, или любой мейнфрейм, или ПС с процом П3 но с спецприблудой, или 25 квалифицированных расчетчиков с Ситизен в руках и т.д.
Второй пример, В сборку могут войти сборки, детали, комплексы, комплекты,...
И при этом детали должны быть только закаленные..

Все это надо декларативно описывать. Описывает ПОЛЬЗОВАТЕЛЬ.

Т.е. требуются динаически скомпанованные ТИПЫ и связи. Требуется навигационный механизм вдоль и поперек, через агрегатные типы и т.д.

Можно все это жестко прописать в коде, а можно вывести наружу для настройки пользователем.

Реализация ЕАВ < 1000 строк кода.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913029
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxluck,
по поводу создания по таблице на сущность, ИМХО:
во 1-х, не надо пользователю давать права на create/drop каких либо объктов БД... мало ли что он вам под этим логином и паролем надропает. токо SELECT/INSERT/UPDATE, а ещё лучше только вызов процедур и запросы из вьюх.

во 2-х, ну сделает вам пользователь на каждую "сущность" по таблице.. а если вам надо получить сводную информацию по всем сущностям? будете генерировать динамический запрос в котором селект по всем 200-м таблицам? когда всё всего в нескольких таблицах (фиксированное колличество), ещё и в НФ, возможно заранее составить "нормальные" запросы, то есть над такими данными в дальнейшем проще производить различные манипуляции
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913031
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
proposed amendment,

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

http://itblogs.ru/blogs/
cio_anatomy/archive/2008/04/11/26906.aspx


...
Базу сгенерить не проблема

Проблема потом иногда добавить поле в таблицу в которой уже десяток-другой миллионов записей. А если надо, чтобы оно с данного момента для всех новых записей было NOT NULL? А если для новых поле больше не нужно? Как его из таблицы удалять? Под живыми пользователями.

Отвечать на вопросы из 98 года, тогда и серверы послаюже были и со sparse полями было не везде ...
...
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913072
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават Юсифов,

Про динамически скомпоннованые типы не совсем понял.

1000 строк но какого кода. Это явно не бизнес логика. месяц работы.

Тут интересная мысль была что использовать этот механизм только очень осторожно совместно с обычными плоскими таблицами. кажется человек частично и понимает проблемы которые могут возникнуть с EAV.

Я же говорю что EAV абсолютно неуместен в данной задачи.

Ну так что мешает динамично сгенирить ddl и dml.

генерить ddl и dml кажется сложнее чем делать какие insert delete операции над тремя таблицами

Добавил строку в таблице сущностей таблица создана.
Добавил строку в таблице типов Тип создан. Но легкость обманчива. Потом работать с этим очень неудобно. Потом нужны механизмы вывода фильтрации и прочее. все это надо тоже писать. Все это потом еще и очень плохо читаемо. Нужны свои дебаг инструменты создавать наверное будет.

Вообще пример хороший приведен.
кажется все таки этот EAV в некоторых случаях оправдан. Но явно не для этого случая, явно вообще не для СУБД. То есть механизм EAV можно применять но не совместно с обычными СУБД.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913084
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КифирчикFoxluck,
по поводу создания по таблице на сущность, ИМХО:
во 1-х, не надо пользователю давать права на create/drop каких либо объктов БД... мало ли что он вам под этим логином и паролем надропает. токо SELECT/INSERT/UPDATE, а ещё лучше только вызов процедур и запросы из вьюх.

во 2-х, ну сделает вам пользователь на каждую "сущность" по таблице.. а если вам надо получить сводную информацию по всем сущностям? будете генерировать динамический запрос в котором селект по всем 200-м таблицам? когда всё всего в нескольких таблицах (фиксированное колличество), ещё и в НФ, возможно заранее составить "нормальные" запросы, то есть над такими данными в дальнейшем проще производить различные манипуляции

а а операцию DELETE не забыли ?

Дело в том что при EAV вся система безопасности летит медным тазом.
Потому что таблицы виртуальные становятся и удалять их можно DELETE том обычным. Drop для этого уже не нужен.

по поводу общей выборки из 200 таблиц интересное замечание.

Но это решаемо поскольку решаемо и на EAV. а EAV это не что иное как копия уже текущей реализации возможностей заложенных в СУБД. ну наверное динамично придется генерить sql запрос. или может какую то денормализацию использовать для ускорения процесса.
можно еще наследование таблиц предложить.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913086
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифовне понял про директории и т.д.

я имел в виду коллизию типа "концепция поменялась" подразумевая ее "в общем", конечно :)

ИМХО в парадигме ее разрешения:

Сахават Юсифовменяются ии удаляются и пользовательские

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

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

тогда

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

-------------

в общем, здравомыслящий опытный пользователь не будет создавать свои сущности - будет использовать только дефолтные, предусмотреннные разработчиком.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913098
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
proposed amendment,

Это офтоп. Проблема не в том зачем. Проблема в том как.
Смысл в этом есть. Смыслов много можно найти один из них не знание предметной области программистом. И не знание пользователем sql. Это просто некоторый компромисс. Добавить немного гибкости системе.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913120
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
proposed amendment,

В основном под ПОЛЬЗОВАТЕЛЕМ подразумеваются эксперты описывающие предметную область, так называемые АНАЛИТИКИ(постановщики). Обычным юзерам хватает добавление полей для собственных нужд. Да смотрите вы ISA95, OAGIS и т.д.
Никто не мешает генерировать все таблицы плоскими. Но, в определеных случаях (связанные с обратной сквозной навигацией (с листьев до корней с сохранением всех свойств объектов полученных JOIN и UNION) и обеспечения целостности через VIEW), LOOKUP форм и т.д.) возможностей СКЛ (во всяком случае МССКЛ) не хватает, (очень трудно работать с графами, так как нет соответствующих штатных средств). Для описания предмета приходится вводить уточняющие допслои (описание контекстов - подсистемные, ролевые, пользовательские) где вводятся новые типы, описываются подтипы (фильтрация и т.д.), порядок, пейджинг и т.д.
Естественно все это опирается на метаописание БД. И тут встает вопрос, а надо и доверять какому то админу БД ведение этой метаописания? А не лучше эту часть мета ввести в собственное метаописание как базовый слой?
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913129
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxluckЭто офтоп. Проблема не в том зачем. Проблема в том как.

да, я знаю это не офтоп - это практика.

незнание предметной области программистом таким образом все равно не преодолеть.
вешать это незнание на конечного пользователя - совершенно пустое занятие.

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

воспользуйтесь поиском.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913132
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
proposed amendment,

Пользоваель не сможет вводить туфту, которая приведет к формальной противоречивости и нецелостности. А не означает нецелостность. Все тут ОК.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913133
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Какой тогда смысл

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

А не означает нецелостность читат как - "EAV не означает нецелостность"
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913156
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифовproposed amendment,

В основном под ПОЛЬЗОВАТЕЛЕМ

я не оспариваю Вашу точку зрения и походы - они любопытныи и интересны. тем не менее существующие "общепринятые" промышленные системы стремятся к централизации. и с точки зрения администрирования базового слоя и с точки зрения администрирования бизнес логики.

это дешевле, предсказуеме и эффективнее

при адаптации-подстройке систем, в большинстве, ИМХО абсолютном, случаев, вопрос может(должен) быть решен админитративно, за рамками КИС, В процессе доработки системы. (with "централизованно" собрали требования пользователей, оценили, наметили, разработали, внедрили, проверили результат).

если вы под ПОЛЬЗОВАТЕЛЕМ подразумеваете АНАЛИТИКА(ПОСТАНОВЩИКА) - ИМХО это совершенно частный случай. который, может быть, найдет реально воплощение в какой-либо специализированной предметной области (на производстве) в химической промышленности, например, где технолог вынужден создавать новую "архитектуру" технологического процесса, или в эксперементальном-штучном-нестандартном производстве...

запустили новую реактификационную колонну, химик технолог(ПОСТАНОВЩИК) разработал новый технологический процесс производства какого-либо супер-нано-бензина в какой-нибудь системе сродни BPMS и автоматически под нее заточились все бизнес процессы и ситемы учета

но это из области фантастики. вероятно для таких методов уже есть место и ниша - в будущем.

Субуго ИМХО
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913163
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифовproposed amendment,

Пользоваель не сможет вводить туфту, которая приведет к формальной противоречивости и нецелостности. А не означает нецелостность. Все тут ОК.

мы, очевидно, по-разному понимаем концепцию "ПОЛЬЗОВАТЕЛЬ". ничего страшного
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913170
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621обойти ограничения классических реализаций

классическим способом. и на елку влезть и ничего не поцарапать

научите ПОЛЬЗОВАТЕЛЯ MSSQL+VisualStudio - и все, он сам во всем разберется

а вот это был офтопик
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913190
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават Юсифов

В основном под ПОЛЬЗОВАТЕЛЕМ подразумеваются эксперты описывающие предметную область, так называемые АНАЛИТИКИ(постановщики). Обычным юзерам хватает добавление полей для собственных нужд. Да смотрите вы ISA95, OAGIS и т.д.



Так фактически почти так вопрос и стоит. Что пользователю надо добавлять поля.
Ну чтобы добавить поле приходиться создавать сущность.

Например
Есть товар

Абстрактный товар
имя
размер

Добавляем поле

Телевизор
имя
размер
диагональ

Добавили поле.
Но пришлось создать сущность.

Потому что

Добавляем поле

Телефон
имя
размер
емкость аккумулятор

То есть именно различия в атрибутах и порождает необходимость создавать сущности.

Я и не говорю что пользователь может изменить все абсолютно спроектировать БД через интерфейс внести любой сколь угодно сложный функционал.
Речь о банальных простых модификациях в очень ограниченных рамках.
Аналогия 3д коридорных шутер.
Пользователю(игроку) вроде кажется что он свободен. Однако это иллюзия он может бежать только по определенным коридорам. Производить выстрелы из ограниченного кол-ва оружия
Вот этот корридор и есть пользовательская сущность.

Это пользовательская сущность с заранее заложенном смыслом использования. Свобода действия только в том чтобы выбрать название поля, тип, порядок вывода.

Меня интересуют именно технические аспекты судя по тому что вы не стерли меня в порошок еще я полагаю что возразить вам особо нечем. Хотя могут еще набежать товарищи.


По поводу централизации. Это оффтоп. тема другой передачи.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913195
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> классическим способом

Других нет.

> и на елку влезть и ничего не поцарапать

Никуда лезть не нужно, ничего царапать необходимости тоже нет. Обычная задача, обычная реализация. Любая метаметамодель может быть реализована в реляционной структуре стандартными средствами. В этой задаче одна серьезная проблема: описать SQL метамодель на том же уровне, что и остальные метамодели. И серьезная она только потому, что метамодель уже реализована в СУБД.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913205
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxluckПо поводу централизации. Это оффтоп. тема другой передачи.

офтоп вот тут

FoxluckТо есть именно различия в атрибутах и порождает необходимость создавать сущности.

и именно это я имею в виду, когда сомневаюсь в возможности передавать ПОЛЬЗОВАТЕЛЯМ функции РАЗРАБОТЧИКА
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913206
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621 серьезная проблема: описать SQL метамодель на том же уровне, что и остальные метамодели. И серьезная она только потому, что метамодель уже реализована в СУБД.

Вот это надо объязательно. И ничего сложного в этом нет.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913210
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxluck,
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913216
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Foxluck]
Добавили поле.
Но пришлось создать сущность. Экземпляр сущности.

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

РАЗРАБОТЧК в основном хреново представляет себе предметную область и посредственно разбирается в доступном ему инструменте.
Если дать нормальный (понятный) инструмент ПОЛЬЗОВАТЕЛЮ который хорошо разбирается в предметной области то эффект может быть разительным.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913221
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Никуда лезть не нужно, ничего царапать необходимости тоже нет.

нет-нет... я не это имелл в виду! э-э-э... в смысле не буквально это...

как правило спор вокруг этой темы вырождается в дискуссию - кто в состоянии, вообще, описать <создать, дополнить> метамодель. и насколько он ПРАВ том что делает, как с точки применимости к бизнес логике, так и с точки применимости к особенностям той или иной СУБД.

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

про методолгию и идеологию я уже вообеще молчу

от себя отмечу - лихих буденовцев навалом, а ПОЛЬЗОВАТЕЛЕЙ о кторых мечтает Сахават вообще ИМХО нет - это легенда... ну разве что пара-другая ЭНТУЗИАСТОВ. Та какой на них расчет - энтузиазм штука непересказуемая...
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913223
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
proposed amendment,


и именно это я имею в виду, когда сомневаюсь в возможности передавать ПОЛЬЗОВАТЕЛЯМ функции РАЗРАБОТЧИКА


Так пользователь даже не понимает что он создает сущности.
Он просто добавляет новый вид товара с новыми уникальными аттрибутами.

Пользователь не участвуют в проектировании он просто выполняет рутинную операцию по созданию однотипных по смыслу но тем не менее разных по набору аттрибутов сущностей.
Использование этих сущностей в логике однотипно. Отличается только набор выводимых полей.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913226
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
proposed amendmentот себя отмечу - лихих буденовцев навалом, а ПОЛЬЗОВАТЕЛЕЙ о кторых мечтает Сахават вообще ИМХО нет - это легенда... ну разве что пара-другая ЭНТУЗИАСТОВ. Та какой на них расчет - энтузиазм штука непересказуемая...
Ну, первый пользователь и есть сам Сахават. :) И то хлеб. А то надоело писать одно и то же.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913236
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифовproposed amendmentот себя отмечу - лихих буденовцев навалом, а ПОЛЬЗОВАТЕЛЕЙ о кторых мечтает Сахават вообще ИМХО нет - это легенда... ну разве что пара-другая ЭНТУЗИАСТОВ. Та какой на них расчет - энтузиазм штука непересказуемая...
Ну, первый пользователь и есть сам Сахават. :) И то хлеб. А то надоело писать одно и то же.
А так возьмем туже бухгалтерию.
Надо вести новый вид оплаты.
Я передаю контекст( работник, табель, наряд и т.д.). Бухгалтер вводит новый вид оплаты и указывает формулу для расчета. Но, тут особенность - новый вид должен быть ориентирован только на работников "альбиносов" и на нечеткие дни календаря. Дык он классифицирует (создает булев поле "Альбинос" в типе Работник, или создает Тип "Альбиносы" и стаскивает туда нужных работников (автоматом создаеются релейшн и передается в контекст)) работников и задает ограничение на дни и все.
Почему это должен делать какой то РАЗРАБОТЧИК??????
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913237
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифовто эффект может быть разительным.

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

но Ваш ПОЛЬЗОВАТЕЛЬ это идеалогия, практика показывает, что пользователей, которых Вы ищете нет.

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

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


в массовом количестве никогда ИМХО,

ЗЫ

в мире <куда как больше> половины ПОЛЬЗОВАТЕЛЕЙ различных компьютерных систем женщины... на что вы их обрекаете
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913240
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават Юсифов

Это к вопросу о сложных типах.
Показываете на примере объектов.
То есть сложный тип. Это экземпляр объекта. А использование его это использование ссылки на экземпляр объекта. То есть Foreign key в терминах Рел. БД ?
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913243
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> И ничего сложного в этом нет

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

Казалось бы небольшое уточнение помогло качественно решить параллельную задачу.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913247
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621,

Согласен с постановкой. Если будет тираж.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913250
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxluckТак пользователь даже не понимает что он создает сущности.

тьфу - много шума из ничего.

[DROP ALL FROM PRECIDING WHERE UserName = "proposed amendment"]

это назавается ОПИСАТЬ новую "сущность".

сто раз обсуждалось в этом и других форумах
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913252
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовА то надоело писать одно и то же.

почет и уважуха
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913253
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxluck,

ну там я хотел показать что каждая деталь имеет собственные свойства и при этом типизирваны как "детали". Там же агрегатный тип (виртуальный) "Сборочные екдиницы" который получен путем приведения типов "Детали" и "Сборки". Там же релейшны для перехода от "Детадь"-> "Сборочные единицы" - "Спецификации" -> "Сборки" и наоборот. Форинкеи обычно мешают, потому они остаются на первом слое, слое мета СКЛ. А Релейшны (виртуальные) многонаправленные создаются во втором слое (это именно мастер-деталь-мастер, а не целосность).
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913254
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> как правило спор вокруг этой темы вырождается в дискуссию

Да. И правильной точкой зрения imho следует считать "никто, кроме архитектора". Квалификация архитектора должна быть заведомо выше любого из других (даже потенциальных) участников проекта, включая аналитиков.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913269
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
proposed amendmentFoxluckТак пользователь даже не понимает что он создает сущности.

тьфу - много шума из ничего.

[DROP ALL FROM PRECIDING WHERE UserName = "proposed amendment"]

это назавается ОПИСАТЬ новую "сущность".

сто раз обсуждалось в этом и других форумах

Ничего не понял. Что тебя осенило. Приведи пример такого обсуждения.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913271
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxluckproposed amendment,Использование этих сущностей в логике однотипно. Отличается только набор выводимых полей.

тем более - задача вообще редуцируется к элементарной. обычно решается методом "избыточности" - это самое простое решение <в вашем контексте "Телевизор" vs "Телефон">.

пользователь создает новый экземпляр "абсолютной сущности" и отрезает от нее все лишнеее.

если нужно что-то существенное добавить - решается на уровне модификации таблиц БД (и интерфейсов при необходимости).

guest_20040621Квалификация архитектора должна быть.

Amen
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913275
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxluckПриведи пример такого обсуждения.

ты с этого начал

Foxluck

<...>То есть по сути создавать таблицы

Как это лучше реализовать.
create table выполнять.

Или же

Создать виртуальную бд на базе нескольких.


с этой ерунды все и началось <starter topick> - все осталное в контексте этого твоего вопроса...
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913283
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сахават ЮсифовFoxluck,

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

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

Многонаправленные релейшены. :) Навевает на мысль многие ко многим.

это из мира ООСУБД ? или каких то метаописаний бд ?
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913288
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовДык он классифицирует (создает булев поле "Альбинос" в типе Работник, или создает Тип "Альбиносы" и стаскивает туда нужных работников (автоматом создаеются релейшн и передается в контекст)) работников и задает ограничение на дни и все.

не то, чтобы в продолжение предмета дискусии, просто личное наблюдение именно вопросы классификации и(а также) формализации-наследования принципов-подходов к классификациии (как показывает моя практика) одно из самых "тонких и ужасно неудобных мест" которые просто плачут и взывают к централизации.

Борхес (as Wiki told us and so)

Все животные подразделяются на следующие группы:

a) принадлежащие Императору;
b) бальзамированные;
c) прирученные;
d) молочные поросята;
e) сирены;
f) сказочные;
g) бродячие собаки;
h) включенные в настоящую классификацию;
i) буйствующие, как в безумии;
k) неисчислимые;
l) нарисованные тонкой кисточкой из верблюжьей шерсти;
m) только что разбившие кувшин;
n) издалека кажущиеся мухами

Классификация животных



кажется к ним Вы еще добавили

а также "Альбиносы, работающие в нечетные дни календаря"

я бы справился, конечно... но это капец как неправильно ИМХО...
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913301
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
proposed amendment,

этот метод избыточности немногим лучше EAV.
Все равно мы фактически создаем виртуальные сущности.
Нам нужно хранить все метаописания. Только теперь не что входит а что не входит.
Опять по хитрому строить выборки прочее. Все становиться виртуальным а смысл. Тот же вопрос что и в EAV зачем... если я и так это могу делать. ну не было бы у меня СУБД. были бы только файлы. Я бы конечно подумал. Ну у меня же есть готовое все зачем. Зачем идти против природы СУБД. можно делать над ней надстройки но зачем заменять её.

Я вижу смысл в обертках. типа xml, orm.

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

Все равно мне больше импонирует нативный create table. Никто из вас не опроверг и не поддержал меня.
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913306
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxluckэтот метод избыточности немногим лучше EAV.

просто попробуйте оба подхода и разница станет очевидной

FoxluckВсе равно мне больше импонирует нативный create table. Никто из вас не опроверг и не поддержал меня.

практика вам все покажет.

ЗЫ


Вы пользователю собиратесь отдать КриэйТэйбл? ну-ну...
...
Рейтинг: 0 / 0
Возможность Создание сущностей пользователем
    #35913629
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
proposed amendmentБорхес (as Wiki told us and so)
Все животные подразделяются на следующие группы:

Это не группы, а категории внутри групп. Ошибка в том, что сами группы не названы. Т.е. сначала выделяются группы, затем создаются категории внутри групп, а потом объекты классифицируются категориями из разных групп. И вся эта работа выполняется ессно пользователем.
...
Рейтинг: 0 / 0
60 сообщений из 60, показаны все 3 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Возможность Создание сущностей пользователем
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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