powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / виртуализация EAV против native create table
25 сообщений из 71, страница 2 из 3
виртуализация EAV против native create table
    #35916904
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Допустим мы отказались от хранения метанинформации EAV в обычной базе данных.

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

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

> Какие то экзотические возможности есть (вроде документоориентированных субд например
> CoucheDB)

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

> Да может мне и самому так удобнее будет расширять систему.

Не удобнее. Проверено неоднократно.
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35918488
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS пишет:

> А ее и не надо им давать в руки. В руки они получают инструмент, который
> полностью контролирует их действия и работает в рамках требований к
> системе, предъявляя в том числе и свои требования к знаниям и

Без базару. Но этот инструмент всё равно таки в конечном итоге
ВЫПОЛНИТ этот самый DDL и заблокирует БД эксклюзивно.

Не, конечно же не так всё страшно, заблокирует он на только
каки-то 2-3 минуты, но вот ежели в таблице 5-10 миллионов,
то уже будет минут 10-20. Ну и т.д.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35918494
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxluck пишет:

> У нас есть проблемы с тем что у нас рел. субд оперирует четко
> типизированными объектами.

Так в чём проблема ? EAV может быть как строго типизированным,
так и наоборот.

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

Так в чём проблема тогда ? Я вижу, ты полон решимости.
Ну, тогда -- ВПЕРЁД ! А про все твои шишки ты ОБЯЗАТЕЛЬНО
напиши сюда, нам, твой опыт будет нам уроком.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35918558
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Не, конечно же не так всё страшно, заблокирует он на только
каки-то 2-3 минуты, но вот ежели в таблице 5-10 миллионов,
то уже будет минут 10-20. Ну и т.д.


Существуют ли такие задачи, где это было бы приемлемым комромиссом?

Например, разрешать модифицировать такие таблицы только DBA, а маленькие таблицы, не явлояющиеся узким местом, таблицы разрешать модифицировать некоторой категории конечных пользователей?
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35920912
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
beluginMasterZiv
Не, конечно же не так всё страшно, заблокирует он на только
каки-то 2-3 минуты, но вот ежели в таблице 5-10 миллионов,
то уже будет минут 10-20. Ну и т.д.


Существуют ли такие задачи, где это было бы приемлемым комромиссом?

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


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

Много данных соответственно породят большое кол-во таблиц. Соотвественно в каждой таблице будет меньше данных. Операции над более маленькими таблицами проходят намного быстрее.

alter table не знаю насколько это дорогостоящая операция. По сравнению с другими.

EAV на 10 миллионах упадет.

Меня вот что еще волнует. что метаинформацию все равно надо где то хранить. если даже мы создаем таблицы через create table.

Нам нужен общий список таблиц. который генерит юзер
Список имен аттрибутов который нагенерил юзер к этой таблице.

Соответственно связь один ко многим между этим таблицами
Но все же это не так страшно. как EAV.

Этого достаточно чтобы динамически генерировать sql.
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35921259
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
belugin пишет:

> Существуют ли такие задачи, где это было бы приемлемым комромиссом?

Компромисы приемлимы везде.
Маленькие базы данных, я думаю.

Но главное, на самом деле (я про это забыл), что EAV НЕ ОГРАНИЧЕН
в числе атрибутов, а таблица в числе колонок в любой СУБД ограничена.
Про это тоже надо помнить.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35921261
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxluck пишет:

> Много данных соответственно породят большое кол-во таблиц. Соотвественно
> в каждой таблице будет меньше данных. Операции над более маленькими
> таблицами проходят намного быстрее.

Объёмы таблиц в СУБД - это не проблема. LOG (N) растёт медленно.

> alter table не знаю насколько это дорогостоящая операция. По сравнению с
> другими.

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

>
> EAV на 10 миллионах упадет.

Ой, да ладно. какая разница-то ? 10 миллионов , 100 -- не суть
важно. А вот попробуйте в 100 миллионную таблицу добавить поле
not null....

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35921694
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FoxluckЭтого достаточно чтобы динамически генерировать sql.
Если учесть, что один объект м.б. размазан на неограниченное число таблиц, задача "динамически генерировать sql" становится не очень простой. Я в такой ситуации выбрал гибрид EAV+CSV и не жалею.
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35922184
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxluckХоть кто то выступил на другой стороне ASCRUS

Про EAV мыши плакали и кололись но все равно жрали кактус :) Да просто "рука бойцов колоть устала...".
Раз в месяц (или чаще) возникает одно и то же обсуждение EAV. И все по кругу...
День сурка какой-то.

Если почитать обсуждение, которое не так давно затеял сам ASCRUS, то там можно много чего посмотреть про EAV, не EAV и варианты реализации не EAV с их достоинствами и недостатками.
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35922221
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНе, конечно же не так всё страшно, заблокирует он на только
каки-то 2-3 минуты, но вот ежели в таблице 5-10 миллионов,
то уже будет минут 10-20. Ну и т.д.
Не знаю где как, а в Oracle, если в добавляемом столбце не проставлено значение по умолчанию, то это будет операция со словарем, а не с таблицей.
т.е. 10-20 минут блокировки не будет.

По поводу 5-10 млн. записей - для хранения их в EAV, потребуется таблица с 50-100 млн. строк (или больше). Обрабатывать ее, а особенно считать по ней отчеты - дело не для слабонервных.

Так что не надо инсенуаций.
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35922664
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BelyПо поводу 5-10 млн. записей
Зависит от природы этих объектов - 10 млн. это население большого города или число операций крупной фирмы за месяц
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35922750
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
ASCRUS пишет:

> А ее и не надо им давать в руки. В руки они получают инструмент, который
> полностью контролирует их действия и работает в рамках требований к
> системе, предъявляя в том числе и свои требования к знаниям и

Без базару. Но этот инструмент всё равно таки в конечном итоге
ВЫПОЛНИТ этот самый DDL и заблокирует БД эксклюзивно.

Не, конечно же не так всё страшно, заблокирует он на только
каки-то 2-3 минуты, но вот ежели в таблице 5-10 миллионов,
то уже будет минут 10-20. Ну и т.д.

Ну так в том то и дело, что это уже не вопрос программиста, а архитектора и аналитика. Вопрос этот должен быть поставлен и решен в ТЗ - частота и условия проведения изменения метамодели системы. В моем текущем проекте это выведено на администратора - он производит изменения метамодели и самостоятельно запускает режим синхронизации, который проводит изменение физической модели БД, перестраивает формы просмотра и изменения информации. Здесь это оставлено на усмотрение человеческого фактора, так как проект не критичный - кол-во пользователей не большое, массив информации большой, но изменения метамодели не частые. В другом же проекте сейчас разрабатывается более сложная схема, так как там планируемый ежедневный прирост информации около 4 гб и кол-во пользователей за тысячу. Здесь изменения будут происходить в многофазовом режиме: изменение метамодели->проведение синхронизации на тестовой БД->проведение тестирования->синхронизация боевой базы с остановкой на профилактические работы (на ночь). Причем здесь же еще сразу обговариваются условия, когда вне зависимости от видимости и доступности БД, работы сетевых каналов и т.д., существуют группы пользователей, которым необходимо в установленное время обеспечить продолжение их работы по вводу информации. Все это вкупе называется технологическим процессом и именно он должен определять, как, когда и насколько можно изменять структуру базы и кто может подождать, а кто должен работать дальше. Ну а если просто без привязки к конкретным условиям, что DDL зло, так как он блокирует таблицы ... то да, он зло ;)
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35922764
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати в догонку - в зависимости от условий проекта, DDL может и не оказывать значительных временных задержек - например в моих проектах у существующих сущностей могут добавляться новые столбцы и изменяться размер длины и разрядности поля. Смены типов или имен полей не предусмотрено. Все поля в таблице объявляются как NULL, а требование NOT NULL обрабатывается в триггере представления, через которое и работают клиентские приложения (слой таблиц для клиентов не доступен).
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35922953
Foxluck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BelyFoxluckХоть кто то выступил на другой стороне ASCRUS

Про EAV мыши плакали и кололись но все равно жрали кактус :) Да просто "рука бойцов колоть устала...".
Раз в месяц (или чаще) возникает одно и то же обсуждение EAV. И все по кругу...
День сурка какой-то.

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

Нашел эти темы пойду читать.

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

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

Типа создать случайным образом 1000 таблиц. Набить данными. По играть с alter table
Случайные выборки сделать.
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35922972
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> изменение метамодели->проведение синхронизации на тестовой БД->проведение
> тестирования->синхронизация

Дружище, какая метамодель? Чтобы метамодель менялась, сначало нужно реализовать метаметамодель, а это явно не для Вас задача. Может, таки _модель_ меняется?

Удивляюсь, как с такой кашей в голове вообще можно проектированием заниматься.
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35923278
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПрошу всех высказывать аргументы только за и против. одного из подходов.
Очередной поиск "универсального и правильного" решения на все случаи жизни.
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35923293
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> изменение метамодели->проведение синхронизации на тестовой БД->проведение
> тестирования->синхронизация

Дружище, какая метамодель? Чтобы метамодель менялась, сначало нужно реализовать метаметамодель, а это явно не для Вас задача. Может, таки _модель_ меняется?

Удивляюсь, как с такой кашей в голове вообще можно проектированием заниматься.
Модель в БД, метамодель сверху в своих таблицах, а каша у Вас в голове.
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35923300
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxluck Типа создать случайным образом 1000 таблиц. Набить данными. По играть с alter table Случайные выборки сделать.
Смысл ? У Вас в задаче пользователи будут случайным образом создавать 1000 таблиц, добавлять или изменять просто так в них колонки ? :)
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35923597
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Модель в БД, метамодель сверху в своих таблицах, а каша у Вас в голове.

;) Дружище, мало просто выучить модное слово, нужно хотя бы в общих чертах представлять его смысл.
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35923635
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bely пишет:

> Не знаю где как, а в Oracle, если в добавляемом столбце не проставлено
> значение по умолчанию, то это будет операция со словарем, а не с таблицей.
> т.е. 10-20 минут блокировки не будет.

Читай внимательней. Если новое поле NOT NULL !

> По поводу 5-10 млн. записей - для хранения их в EAV, потребуется таблица
> с 50-100 млн. строк (или больше). Обрабатывать ее, а особенно считать по
> ней отчеты - дело не для слабонервных.
В чём же твоя проблема ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35923640
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS пишет:

> Ну так в том то и дело, что это уже не вопрос программиста, а
> архитектора и аналитика.

Ты думаешь, программист - это тот, кто в редакторе notepad
пишет код на visual basic ? Я на этот счёт непного другого
мнения.

Ну да ладно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35923641
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS пишет:

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

Ладно, фиг с ней, с задержкой. А как ты решаешь проблему с количеством
атрибутов ? Я хочу 1000. Нет, завтра уже -- 2000. А потом - 3000.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35923804
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
а таблица в числе колонок в любой СУБД ограничена.
Про это тоже надо помнить.


Нельзя ли приджоинить новую табличку 1:0..1 в случае исчерпания?
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35923917
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
belugin пишет:

> Нельзя ли приджоинить новую табличку 1:0..1 в случае исчерпания?
Да можно. Но вроде бы противники EAV боролись за простоту написания
запросов.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
виртуализация EAV против native create table
    #35924045
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Модель в БД, метамодель сверху в своих таблицах, а каша у Вас в голове.

;) Дружище, мало просто выучить модное слово, нужно хотя бы в общих чертах представлять его смысл.
Есть такое понятие, как терминология. В разных направлениях один и тот же термин может означать немного разные вещи. Вот например обращение дружище к незнакомому человеку вместо Вы в моей терминологии имеет отрицательный оттенок. Думаю слово метамодель у нас с Вами тоже имеет разный смысл.
...
Рейтинг: 0 / 0
25 сообщений из 71, страница 2 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / виртуализация EAV против native create table
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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