powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / стоит ли использовать EAV, если число параметров ограничено
25 сообщений из 85, страница 1 из 4
стоит ли использовать EAV, если число параметров ограничено
    #36892117
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Скажите, пожалуйста, стоит ли по вашему опыту использовать EAV, если допустим количество атрибутов (атрибуты могут быть разных типов) ограничено допустим нескольким десятком. Одним из преимуществ EAV является возможность добавления неограниченного числа параметров.
Помогает ли ограничение числа параметров обойти использование EAV?
Если использовать EAV и допустим есть несколько десятков параметров и необходимо вывести все параметры сущности, то нужно либо делать либо сложные запросы с несколькими десятками объединения (кажется, что с ростом числа атрибутов быстродействие будет падать экспоненциально) , либо получать значения атрибутов не в столбцах, а в строках и обрабатывать полученный массив данных в приложении). Можете ли дать рекомандации по поводу того, при каком числе параметров быстродействие запроса например на получение атрибутов становится недопустимо низким.
Спасибо.
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36892156
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Суть EAV не в количестве атрибутов, а в их неизвестности на момент проектирования БД и частой изменчивости в процессе эксплуатации.

Само по себе число атрибутов ни о чем не говорит. Дьявол, как всегда, кроется в деталях. Некоторые из которых вообще прямого отношения к БД не имеют.
Например "быстродействие запроса например на получение атрибутов становится недопустимо низким" - "недопустимо" - это сколько? А запрос оптимизирован и вообще правильно написан?
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36892177
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

Привожу вполне конкретный пример - получение всех атрибутов сущности.
Чтобы решиться задачу на SQL нужно сделать столько объединений, сколько динамических атрибутов.
Чем больше атрибутов, тем меньше быстродействие запроса и с ростом числа атрибутов быстродействие данного запроса быстро падает, ведь так?
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36892186
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005Привожу вполне конкретный пример - получение всех атрибутов сущности.
Чтобы решиться задачу на SQL нужно сделать столько объединений, сколько динамических атрибутовВовсе не обязательно. См. http://www.sql.ru/faq/faq_topic.aspx?fid=210
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36892210
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftСуть EAV не в количестве атрибутов, а в их неизвестности на момент проектирования БД и частой изменчивости в процессе эксплуатации.

Само по себе число атрибутов ни о чем не говорит. Дьявол, как всегда, кроется в деталях. Некоторые из которых вообще прямого отношения к БД не имеют.
Например "быстродействие запроса например на получение атрибутов становится недопустимо низким" - "недопустимо" - это сколько? А запрос оптимизирован и вообще правильно написан?

При увеличении количества атрибутов число операций, необходимое для получения всех значений атрибутов будет сильно расти. Так что данный запрос вряд ли можно назвать эффективным.
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36892212
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftOLEG_2005Привожу вполне конкретный пример - получение всех атрибутов сущности.
Чтобы решиться задачу на SQL нужно сделать столько объединений, сколько динамических атрибутовВовсе не обязательно. См. http://www.sql.ru/faq/faq_topic.aspx?fid=210

Спасибо за ссылку, сейчас посмотрю.
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36892300
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 11.10.2010 12:18, OLEG_2005 wrote:

> Скажите, пожалуйста, стоит ли по вашему опыту использовать EAV, если допустим
> количество атрибутов (атрибуты могут быть разных типов) ограничено допустим
> нескольким десятком. Одним из преимуществ EAV является возможность добавления
> неограниченного числа параметров.

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

Если все атрибуты известны на момент реализации, то EAV как бы не обязательно.
Или если готовы согласится на (постоянную) дополнительную работу программистов.

> Помогает ли ограничение числа параметров обойти использование EAV?
> Если использовать EAV и допустим есть несколько десятков параметров и необходимо
> вывести все параметры сущности,
то нужно либо делать либо сложные запросы с
> несколькими десятками объединения (кажется, что с ростом числа атрибутов
> быстродействие будет падать экспоненциально) ,

Время ещё одного JOIN-а таблицы -- это O( log(N) )
где N -- общее число атрибутов всех сущностей.
(предполагается, что для JOIN-а используется индекс,
а иначе это безумие).

Соответственно, время вывода всех атрибутов
будет

O( M * log( N ) )

где M -- число атрибутов выводимой сущности.
Это ну никак не экспоненциальный рост. А линейный.
Ну и на практике

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

Чем это плохо ?
Кстати, время будет ровно такое же.

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

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

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36892391
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

Спасибо за подробный ответ.
То есть, если у меня есть контейнер с сущностями, которые могут иметь динамические параметры, список параметров, хранится в связанной с контейнером таблицы, то вполне примелемым выглядит решение: получить для данного контейнера список объектов, динамически сформировать запрос для вывода сущностей контейнера с объединениями (число которых равно числу параметров контейнера сущностей)?
Список атрибутов задается пользователем, но количество их можно ограничить нескольким десятком.
Альтернативой казалось помещение атрибутов в дополнительные поля таблицы сущностей, которые могли бы использоваться, если нужно дополнительные параметры, но в этом случае система вряд ли получится проще. Атрибуты могут добавляться и удаляться, нужна знать в какую колонку добовлять параметр, да и запросы тоже не кажутся в этом случае простыми.
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36892599
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 11.10.2010 13:41, OLEG_2005 wrote:

> То есть, если у меня есть контейнер с сущностями, которые могут иметь
> динамические параметры, список параметров, хранится в связанной с контейнером
> таблицы, то вполне примелемым выглядит решение: получить для данного контейнера
> список объектов, динамически сформировать запрос для вывода сущностей контейнера
> с объединениями (число которых равно числу параметров контейнера сущностей)?

Я проблем не вижу. Ты видешь ? Какие ?

> Альтернативой казалось помещение атрибутов в дополнительные поля таблицы
> сущностей, которые могли бы использоваться, если нужно дополнительные параметры,
> но в этом случае система вряд ли получится проще.

Она не будет регулярной структуры. Это точно.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36892623
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005либо получать значения атрибутов не в столбцах, а в строках и обрабатывать полученный массив данных в приложении).Конечно, только так. Что за идеи делать кучу джойнов и т.п.???
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36892830
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
On 11.10.2010 13:41, OLEG_2005 wrote:

> То есть, если у меня есть контейнер с сущностями, которые могут иметь
> динамические параметры, список параметров, хранится в связанной с контейнером
> таблицы, то вполне примелемым выглядит решение: получить для данного контейнера
> список объектов, динамически сформировать запрос для вывода сущностей контейнера
> с объединениями (число которых равно числу параметров контейнера сущностей)?

Я проблем не вижу. Ты видешь ? Какие ?

> Альтернативой казалось помещение атрибутов в дополнительные поля таблицы
> сущностей, которые могли бы использоваться, если нужно дополнительные параметры,
> но в этом случае система вряд ли получится проще.

Она не будет регулярной структуры. Это точно.



Это приводит к усложению системы, но в данном случае видимо это неизбежно.
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36892838
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgOLEG_2005либо получать значения атрибутов не в столбцах, а в строках и обрабатывать полученный массив данных в приложении).Конечно, только так. Что за идеи делать кучу джойнов и т.п.???

В книге Pragmatic SQL Pattern рекомендуется делать так, но мне не нравится усложнение приложения в этом случае.
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36893385
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 11.10.2010 16:26, OLEG_2005 wrote:
> В книге Pragmatic SQL Pattern рекомендуется делать так, но мне не нравится
> усложнение приложения в этом случае.

На самом -то деле приложению как раз должно быть достаточно всё равно, как
получать атрибуты. Разве что шняги типа Delphi & VisualBasic нельзя будет
в лоб применять.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36893402
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivРазве что шняги типа Delphi & VisualBasic нельзя будет в лоб применять.Кстати, пару лет назад мне попадалось упоминание датасета для Delphi, который понимает выборку из EAV без поворота и "поворачивает" выборку уже в памяти. Может, оно и сейчас есть...
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36893407
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
On 11.10.2010 16:26, OLEG_2005 wrote:
> В книге Pragmatic SQL Pattern рекомендуется делать так, но мне не нравится
> усложнение приложения в этом случае.

На самом -то деле приложению как раз должно быть достаточно всё равно, как
получать атрибуты. Разве что шняги типа Delphi & VisualBasic нельзя будет
в лоб применять.


Используется PHP. Усложение в том, что данные нужно в приложении пробрезовать в таблицную форму.
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36893412
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005Усложение в том, что данные нужно в приложении пробрезовать в таблицную форму.А что есть "приложение" ?
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36893422
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftOLEG_2005Усложение в том, что данные нужно в приложении пробрезовать в таблицную форму.А что есть "приложение" ?


Приложение рассылки спискам подписчикам, каждый список может содержать список дополительных атрибутов, которые должны содержать подписчика данного списка. Нужно осуществить возножность как отправку всему списку подписчиков, так и некоторому сегменту на основе атрибутов подписчиков список (динамических в том числе).
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36893425
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005miksoftOLEG_2005Усложение в том, что данные нужно в приложении пробрезовать в таблицную форму.А что есть "приложение" ?Приложение рассылки спискам подписчикам, каждый список может содержать список дополительных атрибутов, которые должны содержать подписчика данного списка. Нужно осуществить возножность как отправку всему списку подписчиков, так и некоторому сегменту на основе атрибутов подписчиков список (динамических в том числе).Хм, спрошу по-другому. Что получается в результате выполнения запроса? HTML-страничка?
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36893436
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftOLEG_2005miksoftOLEG_2005Усложение в том, что данные нужно в приложении пробрезовать в таблицную форму.А что есть "приложение" ?Приложение рассылки спискам подписчикам, каждый список может содержать список дополительных атрибутов, которые должны содержать подписчика данного списка. Нужно осуществить возножность как отправку всему списку подписчиков, так и некоторому сегменту на основе атрибутов подписчиков список (динамических в том числе).Хм, спрошу по-другому. Что получается в результате выполнения запроса? HTML-страничка?

Простите, не совсем понятно, какой запрос вы имеет в виду. Сейсас нужно получить список подписчиков списка со всему атрибутами и группами куда подписчик входит. Эти данные предполагается нужны для манипулирования ими с помощью веб-интерфейса. Или или вы имеете в виду что-либо ещё?
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36893444
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005Или или вы имеете в виду что-либо ещё?Я имею в виду, что для генерации HTML-таблицы (это которая в тэге <table>) из результата запроса "получение всех атрибутов сущности" нет необходимости ни применять кучу JOIN-ов в этом запросе, ни даже транспонирование, на которое я давал ссылку. Достаточно выбирать эти атрибуты в нужном порядке в пределах каждой сущности.
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36893456
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftOLEG_2005Или или вы имеете в виду что-либо ещё?Я имею в виду, что для генерации HTML-таблицы (это которая в тэге <table>) из результата запроса "получение всех атрибутов сущности" нет необходимости ни применять кучу JOIN-ов в этом запросе, ни даже транспонирование, на которое я давал ссылку. Достаточно выбирать эти атрибуты в нужном порядке в пределах каждой сущности.

В данном случае, наверное, можно получить массив, где каждый элемент представлет собой что-то врде
сущность, список атрибутов и в приложение обрабатывать данные.
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36893457
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftOLEG_2005Или или вы имеете в виду что-либо ещё?Я имею в виду, что для генерации HTML-таблицы (это которая в тэге <table>) из результата запроса "получение всех атрибутов сущности" нет необходимости ни применять кучу JOIN-ов в этом запросе, ни даже транспонирование, на которое я давал ссылку. Достаточно выбирать эти атрибуты в нужном порядке в пределах каждой сущности.

Прада код в этом случае будет выглядеть очень уж некрасиво.
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36893463
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftOLEG_2005Или или вы имеете в виду что-либо ещё?Я имею в виду, что для генерации HTML-таблицы (это которая в тэге <table>) из результата запроса "получение всех атрибутов сущности" нет необходимости ни применять кучу JOIN-ов в этом запросе, ни даже транспонирование, на которое я давал ссылку. Достаточно выбирать эти атрибуты в нужном порядке в пределах каждой сущности.

На самом деле все несколько сложенее так как у подписчиков есть общие для всех атрибуты, которые сейчас храняться в таблице подписчиков.
Редактировани в этом случае также усложняется не знаю пока насколько, но видимо это неизбежно.
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36893549
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftOLEG_2005Или или вы имеете в виду что-либо ещё?Я имею в виду, что для генерации HTML-таблицы (это которая в тэге <table>) из результата запроса "получение всех атрибутов сущности" нет необходимости ни применять кучу JOIN-ов в этом запросе, ни даже транспонирование, на которое я давал ссылку. Достаточно выбирать эти атрибуты в нужном порядке в пределах каждой сущности.

Хотелось бы отделить логику приложения от логики вывода и передать объекта Вида массив, который представляет собой таблицу. Преобразование может потребовать опреленных затрат.
...
Рейтинг: 0 / 0
стоит ли использовать EAV, если число параметров ограничено
    #36893620
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005Здравствуйте.
Скажите, пожалуйста, стоит ли по вашему опыту использовать EAV, если допустим количество атрибутов (атрибуты могут быть разных типов) ограничено допустим нескольким десятком. Одним из преимуществ EAV является возможность добавления неограниченного числа параметров.
Помогает ли ограничение числа параметров обойти использование EAV?
Если использовать EAV и допустим есть несколько десятков параметров и необходимо вывести все параметры сущности, то нужно либо делать либо сложные запросы с несколькими десятками объединения (кажется, что с ростом числа атрибутов быстродействие будет падать экспоненциально) , либо получать значения атрибутов не в столбцах, а в строках и обрабатывать полученный массив данных в приложении). Можете ли дать рекомандации по поводу того, при каком числе параметров быстродействие запроса например на получение атрибутов становится недопустимо низким.
Спасибо.
Судя по всему Вы используете какую-то странную СУБД, в которой нельзя добавлять неограниченное число характеристик объекта (или, другими словами, неограниченное число колонок в таблицу)? И поэтому Вам приходится задумываться о EAV?
...
Рейтинг: 0 / 0
25 сообщений из 85, страница 1 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / стоит ли использовать EAV, если число параметров ограничено
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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