powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
25 сообщений из 65, страница 2 из 3
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38720353
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскинможно пример EAV-схемы с возможностью использования стандартных
foreign key в атрибутах?
Код: sql
1.
alter table values add constraint foreign key (ref_value) references entities (id);


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38720392
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинИ что помешает записать в этот атрибут ссылку на Entity другого типа?Бизнес-логика? Валидация в интерфейсе пользователя?
Кот МатроскинForeign key пропустит - вполне валидная ссылка на Entity, никаких проблем.Потому как это и есть "ссылочная целостность"...
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38720398
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но процедуру, которая это будет делать, сначала нужно написать - в отличие от декларативной поддержки ссылочной целостности.Зато процедура может решить ВЕСЬ спектр задач сохранения данных, а не только одну, как встроенная СЦ.
В реальной ситуации обычной СЦ просто не хватает.
А делать у половины таблиц СЦ, а у другой половины процедуру неразумно.
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38720418
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvКот МатроскинИ что помешает записать в этот атрибут ссылку на Entity другого типа?Бизнес-логика? Валидация в интерфейсе пользователя?

Именно это я и назвал "промежуточным API"
а валидация в интерфейсе пользователя - это вообще ни о чем, в мою текущую систему 99% данных приходят минуя какие-либо интерфейсы пользователя
Кот МатроскинПотому как это и есть "ссылочная целостность"...
Ну да, когда родителем ребенка можно указать в базе автомобиль КАМАЗ или фирму "Ромашка" - это ж отличная ссылочная целостность, непонятно что еще нужно :)
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38720422
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVНо процедуру, которая это будет делать, сначала нужно написать - в отличие от декларативной поддержки ссылочной целостности.Зато процедура может решить ВЕСЬ спектр задач сохранения данных, а не только одну, как встроенная СЦ.А если данные поменяются в обход процедур? И если этим будет нарушена ссылочная целостность?
Про гранты я в курсе, как в курсе и про неограниченные права администраторов...
LSVВ реальной ситуации обычной СЦ просто не хватает.Наличие декларативной СЦ в базе не отменяет необходимость проверок в пользовательском интерфейсе и в бзнес-логике. Это - по сути "последний бастион".
LSVА делать у половины таблиц СЦ, а у другой половины процедуру неразумно.Неразумно делать процедуры там, где "необходимо и достаточно" (с) внешнего ключа. И, имхо, неразумно надеяться на процедуры, отказываясь от внешних ключей - даже в случаях, когда ссылочная целостность обсеспечивается кодом процедуры.

ЗЫ. У внешних ключей есть еще одна явная польза - легко восстанавливаются логические связи между данными в базе.
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38720444
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVЗато процедура может решить ВЕСЬ спектр задач сохранения данных
За исключением одной: поддержания собственно ссылочной целостности в многопользовательском
окружении без эскалации эксклюзивных блокировок на всю БД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38720454
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскинsphinx_mvпропущено...
Бизнес-логика? Валидация в интерфейсе пользователя?

Именно это я и назвал "промежуточным API"Если подходить с этого ракурса, то даже банальная вставка данных в EAV-базу тоже выполняется через "промежуточное АПИ"...
Кот Матроскина валидация в интерфейсе пользователя - это вообще ни о чем, в мою текущую систему 99% данных приходят минуя какие-либо интерфейсы пользователяЭто ничего, что "пользователем" системы может выступать какой-нибудь программно-аппаратный автомат, который тупо льет данные в базу через "пользовательский интерфейс", представленный некоторой вьюхой или хранимой процедурой?
Кстати, такие варианты очень часто рассиматриваются при лицензировании серверов баз данных.
Кот Матроскинsphinx_mvПотому как это и есть "ссылочная целостность"...
Ну да, когда родителем ребенка можно указать в базе автомобиль КАМАЗ или фирму "Ромашка" - это ж отличная ссылочная целостность, непонятно что еще нужно :)Ну, это на самом деле элементарно!
Вот, что сайтопейсатели какого-нибудь "ынтырнет-магазина" позволяют выбрать в форме при заказе, и что родители ткнут в этой самой форме, такой "паровоз" ребенок и получит - EAV тут при чем?! Чистая "бизнес-логика", будь она неладна... :)
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38720457
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovLSVЗато процедура может решить ВЕСЬ спектр задач сохранения данных
За исключением одной: поддержания собственно ссылочной целостности в многопользовательском
окружении без эскалации эксклюзивных блокировок на всю БД.
Тут бы еще про "версионники" вспомнить...
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38720503
Фотография DirksDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vetal
Код: sql
1.
2.
3.
А вот изжил ли Entity-Attribute-Value (EAV) с приходом NoSQL?...
Сейчас же появились NoSQL решения. Они вроде как-то предполагают гибкую модель данных.
 


Не "гибкую", а никакой модели.
ИМХО, гибкость и NoSQL понятия несовместимые. Посмотрите топик и статью
http://www.sql.ru/forum/1107687/statya-na-habre-pochemu-vy-nikogda-ne-dolzhny-ispolzovat-mongodb
(Статья на Хабре: "Почему вы никогда не должны использовать MongoDB")

Правда, можно взгромоздить на NoSQL свои метаданные а'ля EAV.
И если Ваш код будет управляться этими метаданными, можно получить какую-то гибкость.
Но это значит, что надо не противопрставлять EAV и NoSQL, а совместно использовать.

Но, есть ли смысл? Получится свой вариант СУБД с метаданными...
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38720831
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvEAV всего лишь очень сильно нормализованные данныеНичего подобного.Нормализация к этому безобразию не имеет ни малейшего отношения. Это "универсальная модель данных", на которую с легкостью натягивается любая сколь угодно кривая и ненормализованная модель данных предметной области(ПО), используемая в качестве "серебрянной пули". По сути, это всего лишь прослойка между РСУБД и требуемой моделью данных, которую на практике иногда(!) применяют для решения конкретных узкоутилитарных задач. Чаще всего используется неофитами в условиях полного непонимания ПО. В целом, больше создаёт проблем, чем решает.
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38720846
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA(поскипано по причине много букв)Надеюсь, в метаданные (любого) SQL-сервера Вы заглыдывали...
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38720851
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvChA(поскипано по причине много букв)Надеюсь, в метаданные (любого) SQL-сервера Вы заглыдывали...Это вопрос или аргумент ? Может попробуете ещё раз ?
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38720854
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChAsphinx_mvпропущено...
Надеюсь, в метаданные (любого) SQL-сервера Вы заглыдывали...Это вопрос или аргумент ? Может попробуете ещё раз ?Это был намек... Но если Вам этого намека (и ОЧЕНЬ прозрачного) было не достаточно, могу и разжевать...

Вывод на основе Ваших утверждений: сервера баз данных проектируют неофиты... В базах данных есть структуры для хранения метаданных... Там же есть структуры для хранения данных... И есть даже некоторое API, которое на основе метаданных представляет данные как объекты реляционной базы. Итого, на выходе - "универсальная модель данных, на которую с легкостью натягивается любая сколь угодно кривая и ненормализованная модель данных предметной области(ПО), используемая в качестве серебрянной пули" (с) не буду показывать пальцем чей.

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

ЗЫ. То, что избыточная нормализация приводит к возникновению структур данных, эквивалентных EAV, оставляю Вам для самостоятельного практического исследования на досуге.
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38720868
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sphinx_mv, дружище, вы тупой?

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

> В базах данных есть структуры для хранения метаданных...

Вас жестоко обманули. В СУБД есть структуры для хранения метаданных. И никакого отношения к EAV они не имеют. Любая метамодель описывается посредством, например, MOF, которая тоже никакого отношения к EAV не имеет. Здесь тоже нечего обсуждать.

> база данных, обслуживающая RADIUS-сервер

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

В сад, юноша.
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38720926
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621EAV - костыли, оправданные в ограниченном количестве случаев.Если Вы настолько умный, Вам следовало давным-давно хотя бы попытаться узнать, что любой принцип проектирования применим в достаточно ограниченном количествое случаев. И очень редко без разумного сочетания разных принципов получается более/менее удовлетворительный результат.
guest_20040621Это не нужно обсуждать, это нужно запомнить.Ну, так и запомнните. Вам это кто-то зарещает?
guest_20040621> В базах данных есть структуры для хранения метаданных...
Вас жестоко обманули. В СУБД есть структуры для хранения метаданных. И никакого отношения к EAV они не имеют.У Вас разрыв шаблона, потому что "там оно так не называется"? Бывает...
Таблицы метаданных, которые описывают правила представления массивов байт в виде таблиц с определенным количеством полей оределенного типа данных... Функционально - близнецы-братья/сестры...
guest_20040621Любая метамодель описывается посредством, например, MOF, которая тоже никакого отношения к EAV не имеет. Здесь тоже нечего обсуждать.EAV - принцип, а не конкретная реализация, которых может быть множество.
guest_20040621> база данных, обслуживающая RADIUS-сервер
Который в общем случае вполне может обойтись без базы данных.А чего Вы скатываетесь в "общий случай"?
Указан вполне конкретный. Или слишком "острые" не могут отличать "общее" от "частного"?

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

ЗЫ. guest_ 20040621 ...
2004-06-21 - это памятная для Вас дата чего? Рождения?
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38721098
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvChAЭто вопрос или аргумент ? Может попробуете ещё раз ?Это был намек... Но если Вам этого намека (и ОЧЕНЬ прозрачного) было не достаточно, могу и разжевать...

Вывод на основе Ваших утверждений: сервера баз данных проектируют неофиты... В базах данных есть структуры для хранения метаданных... Там же есть структуры для хранения данных... И есть даже некоторое API, которое на основе метаданных представляет данные как объекты реляционной базы. Итого, на выходе - "универсальная модель данных, на которую с легкостью натягивается любая сколь угодно кривая и ненормализованная модель данных предметной области(ПО), используемая в качестве серебрянной пули" (с) не буду показывать пальцем чей.Вынужден констатировать, что с логикой у Вас те же проблемы, что и со знаниями. Ещё раз, нормализация не имеет никакого отношения к EAV, она применима к РМД. Как бы сам EAV не был нормализован в терминах РМД, это не переносится автоматически на ту модель данных, которую натягивают поверх него.sphinx_mvИ сугубо на основе Вашего скромного мнения, Вы не вполне адекватно представляете себе ни реальной пользы, ни возможностей, ни границ применимости EAV в базах данных - поэтому Вы считаете, что оно неприменимо. Проблема в том, что оно неприменимо для Вас - это зависит только от задач из Вашей сферы деятельности. А на самом деле "в мире" существуют области, где EAV-модель является не только подходящей, но и подходящей идеально . В качестве простого примера - база данных, обслуживающая RADIUS-сервер, протоколы которого, связанные с аутентификацией, авторизацией и аккаунтингом, состоят из запросов на основе наборов пар "атрибут-значение".К сожалению, с телепатией у Вас ещё хуже, чем с вышеупомянутым. О EAV я знаю достаточно, так как сам с ней работал и до сих пор имею дело. И прекрасно знаю все её минусы. С плюсами сложнее, их почти нет.
С чтением, по ходу, у Вас тоже проблемы. Напомню, эта модель представляет интерес только "для решения конкретных узкоутилитарных задач". Не более того. В остальных случаях, она играет роль ненужного костыля и оправдывается обычно только незнанием предметной области. Каждый неофит проходит через стадию увлечения EAV, но некоторые так и остаются в заблуждении, что это вершина проектирования БД.sphinx_mvЗЫ. То, что избыточная нормализация приводит к возникновению структур данных, эквивалентных EAV, оставляю Вам для самостоятельного практического исследования на досуге.Встречное предложение: вместо фантазий попробуйте почитать на досуге что-нибудь про нормализацию, например - Дейта, может попустит. Хотя есть опасение, что не в коня корм.
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38721120
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> любой принцип проектирования применим в достаточно ограниченном количествое случаев

и далее.

Идиоты типа вас не удивляют. Удивляет их желание открывать рот и то, что они умудряются как-то зарабатывать деньги при абсолютном отсутствии высшей нервной деятельности. Метла - ваш основной рабочий инструмент.
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38721220
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChAsphinx_mvпропущено...
Это был намек... Но если Вам этого намека (и ОЧЕНЬ прозрачного) было не достаточно, могу и разжевать...

Вывод на основе Ваших утверждений: сервера баз данных проектируют неофиты... В базах данных есть структуры для хранения метаданных... Там же есть структуры для хранения данных... И есть даже некоторое API, которое на основе метаданных представляет данные как объекты реляционной базы. Итого, на выходе - "универсальная модель данных, на которую с легкостью натягивается любая сколь угодно кривая и ненормализованная модель данных предметной области(ПО), используемая в качестве серебрянной пули" (с) не буду показывать пальцем чей.Вынужден констатировать, что с логикой у Вас те же проблемы, что и со знаниями. Ещё раз, нормализация не имеет никакого отношения к EAV, она применима к РМД. Как бы сам EAV не был нормализован в терминах РМД, это не переносится автоматически на ту модель данных, которую натягивают поверх него.Слов-то сколько! И куча ляпов в "посылах"...
"Модель данных"... "модель данных"... В EAV модель описывает способ хранения и доступа к данным - и ВСЕ! Хоть на ассемблере описывай!
А собственно про данные что промантровать сможете? Вот только терзают смутные сомнения в Ваших "возможностях"... Подсказка: ДАННЫЕ атрибутов сущностей в EAV хранятся в ОЧЕНЬ СИЛЬНО нормализованном виде с использованием реляционной модели. ДАННЫЕ!
"Нормализация не имеет никакого отношения к данным, хранящимся в реляционной модели" (с) ChA - это стопудово в анналы...
Прикол в том, что "нормализация по сути" имеет отношение еще много к чему, кроме реляционной модели данных в СУБД.
ChAsphinx_mvИ сугубо на основе Вашего скромного мнения, Вы не вполне адекватно представляете себе ни реальной пользы, ни возможностей, ни границ применимости EAV в базах данных - поэтому Вы считаете, что оно неприменимо. Проблема в том, что оно неприменимо для Вас - это зависит только от задач из Вашей сферы деятельности. А на самом деле "в мире" существуют области, где EAV-модель является не только подходящей, но и подходящей идеально . В качестве простого примера - база данных, обслуживающая RADIUS-сервер, протоколы которого, связанные с аутентификацией, авторизацией и аккаунтингом, состоят из запросов на основе наборов пар "атрибут-значение".К сожалению, с телепатией у Вас ещё хуже, чем с вышеупомянутым. О EAV я знаю достаточно, так как сам с ней работал и до сих пор имею дело . И прекрасно знаю все её минусы. С плюсами сложнее, их почти нет.Я уже затрудняюсь определить, с чем у Вас проблемы, но пример использования EAV, которое полностью раскрывает плюсы и совершенно игнорирует все минусы, был приведен. Кроме пустопорожнего растекания мыслею по древу Вы ответить ничего не смогли - что, как бы, намекает.
ChAС чтением, по ходу, у Вас тоже проблемы. Напомню, эта модель представляет интерес только "для решения конкретных узкоутилитарных задач". Не более того. В остальных случаях, она играет роль ненужного костыля и оправдывается обычно только незнанием предметной области. Каждый неофит проходит через стадию увлечения EAV, но некоторые так и остаются в заблуждении, что это вершина проектирования БД.Зато у Вас наблюдается не просто ноль с логикой, а отрицательная ее величина... Немеряно пафоса... "Все неофиты"... "Использовать EAV нельзя нигде"... И выделенное красным заставляет ОЧЕНЬ сильно задумываться, к кому Вас отнести... Кстати, в каком месте я говорил о чем-то ином, кроме некоторых вариантов использования Вы тоже придумать так и не смогли... Бывает... Соответственно, у кого проблемы, не считая логики, с чтением - вопрос интересный... Суметь прочитать то, чего не написано - это сильно!..
Но ладно... Расслабьтесь... Считайте, что Вы теперь - Д'Артаньян. Вот только, чтобы быть Д'Артаньяном не достаточно носить белые перчатки.
ChAsphinx_mvЗЫ. То, что избыточная нормализация приводит к возникновению структур данных, эквивалентных EAV, оставляю Вам для самостоятельного практического исследования на досуге.Встречное предложение: вместо фантазий попробуйте почитать на досуге что-нибудь про нормализацию, например - Дейта, может попустит. Хотя есть опасение, что не в коня корм.Похоже, Дейта Вы только на обложке и читали... Но зато знаете "цвет учебника" - на твердую троечку потянет...
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38721222
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Идиоты типа вас не удивляют.Просто рекомендация: отодвиньтесь от зеркала и выключите компьютер - становится слишком очевидно, про кого Вы пишите...
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38721303
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sphinx_mv, дружище, именно метла. Не занимайтесь проектированием, вам это противопоказано. И, пожалуйста, не пишите здесь ничего. Мне не доставляет удовольствия называть баранов баранами, даже если они этого заслуживают.
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38721350
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621sphinx_mv, дружище, именно метла. Не занимайтесь проектированием, вам это противопоказано. И, пожалуйста, не пишите здесь ничего. Мне не доставляет удовольствия называть баранов баранами, даже если они этого заслуживают.Рекомендация Вам хотя бы отодвинуться от зеркала действия не возымела...
Жаль, а то мало ли еще кого Вы в зеркале в Вашем-то состоянии способны увидеть...
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38721395
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv но пример использования EAV, которое полностью раскрывает плюсы и совершенно игнорирует все минусы, был приведенА вот я не знаю как RADIUS работает с БД. Почему именно EAV. И какие плюсы оно раскрывает.
Хотя если вам интереснее кидатся какашками...
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38721398
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv...Мне жаль, что Ваша воинствующая глупость была ошибочно принята мною всего лишь за заблуждение. К отсутствию у Вас упомянутых ранее положительных качеств добавились сугубо отрицательные, как-то активное враньё и безудержная, высосанная из пальца, чушь. Искренне жаль потраченного на Вас времени.
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38721467
long live sql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VetalEAV был единственным вариантомне совсем
я бы не стал совсем отбрасывать вариант "blob+xml" (часто - таблица с двумя полями, id и blob; xml можно заменить на json или бинарную сериализацию объекта)
- как реализацию в sql именно key-value storage - одного из частых применений nosql (без атрибутов, т.е. всё дерево объекта в одной blob-куче)
минусы ясны (та же ссылочная целостность; при переконфигурации проблематично удалять и переименовывать атрибуты, ладно хоть добавлять нетрудно),
но и плюсы есть (например, скорость)
...
Рейтинг: 0 / 0
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
    #38721523
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257sphinx_mv но пример использования EAV, которое полностью раскрывает плюсы и совершенно игнорирует все минусы, был приведенА вот я не знаю как RADIUS работает с БД. Почему именно EAV.Приведу пару примеров не самых сложных RADIUS-пакетов - всего лишь диалапный аккаунтинг ( взято тут )...
пример 1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Tue Jul 30 14:48:18 1996
	Acct-Session-Id = "35000004"
	User-Name = "bob"
	NAS-IP-Address = 172.16.64.91
	NAS-Port = 1
	NAS-Port-Type = Async
	Acct-Status-Type = Start
	Acct-Authentic = RADIUS
	Service-Type = Login-User
	Login-Service = Telnet
	Login-IP-Host = 172.16.64.25
	Acct-Delay-Time = 0
	Timestamp = 838763298
пример 2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Tue Jul 30 14:48:39 1996
	Acct-Session-Id = "35000004"
	User-Name = "bob"
	NAS-IP-Address = 172.16.64.91
	NAS-Port = 1
	NAS-Port-Type = Async
	Acct-Status-Type = Stop
	Acct-Session-Time = 21
	Acct-Authentic = RADIUS
	Acct-Input-Octets = 22
	Acct-Output-Octets = 187
	Acct-Terminate-Cause = Host-Request
	Service-Type = Login-User
	Login-Service = Telnet
	Login-IP-Host = 172.16.64.25
	Acct-Delay-Time = 0
	Timestamp = 838763319
Кроме аккаунитинга (навскидку) есть еще аутентификация и авторизация с прописыванием параметров соединения, c динамической маршрутизация. И с RADIUS-протоколом работают не только по диалапу. Количество атрибутов и их типов зависит от вида услуги. Кроме этого возможно использование атрибутов, определяемых производителем оборудования. В одном пакете может быть несколько десятков пар "атрибут-значение" - и количество не постоянно, и для некорых атрибутов допускается повтор.

"Плоскую" таблицу с зарезервированными под каждый атрибут полями использовать? По самым скромным оценкам, примерно полей, этак на 100... И большая часть из из этих полей - "строки".
По отдельной таблице под каждый "чих моды" вид сервиса, под каждого "отдельно взятого" производителя и под каждый "отдельно взятый" тип оборудования? Чтобы "оценить последствия": список словарей одних только вендорских атрибутов, которые поддерживает небезызвестный freeradius , приближается к двум сотням штук...
Так что, EAV - и не париться!
...
Рейтинг: 0 / 0
25 сообщений из 65, страница 2 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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