powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Oracle + таблица атрибутов
79 сообщений из 79, показаны все 4 страниц
Oracle + таблица атрибутов
    #38537740
DDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Мы пишем проект на Django и в кчестве СУБД используем ORACLE.

Во время проектировки мы решили создать не стандартную модель, это значит что у нас есть:

1.Главная таблица Items
2. Наследуюшие таблицы(Forgein Key на Item) которые являются разными сущностями (Category, Product и т.д)
3. Таблица со списком атрибутов
4. таблица Values :


CREATE TABLE "TPPDB"."CORE_VALUE"
( "ID" NUMBER(11,0),
"TITLE" NCLOB,
"ATTR_ID" NUMBER(11,0), -- Ссылка на атрибут
"ITEM_ID" NUMBER(11,0), -- Ссылка на Item
"SHA1_CODE" NVARCHAR2(40),
"START_DATE" TIMESTAMP (6) DEFAULT NULL,
"END_DATE" TIMESTAMP (6) DEFAULT NULL,
"CREATE_DATE" TIMESTAMP (6) DEFAULT NULL,
"CREATE_USER_ID" NUMBER(11,0) DEFAULT NULL
)


Title - Значение атрибута.

Меня беспокоит то что он является NCLOB т.к там могут хранится длинные тексты. Но вопрос как сама БД с этим работает т.к 70% - 80% будут максимум в 100 символов.

Кроме того таких полей около 10(я их не указал) т.к они созданы под каждый язык.

Что посоветуйте делать? Оставить всё как есть или длинные тексты вынести в другое место и если да то как?

Спасибо!
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38538479
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Под серьёзной нагрузкой всё равно умрёт, а под несерьёзной и клобы потянут. Вывод: делайте что хотите.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38538489
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeathЧто посоветуйте делать? Оставить всё как есть или длинные тексты вынести в другое место и если да то как?
Спасибо!Пока нагрузка небольшая - делайте что хотите. Как вырастет - ищите, в чем проблема, а там ориентируйтесь на месте. Это совет от Капитана.
Про клобы могу посоветовать не писать "select *" к таблицам с клобами, а если используете ОРМ, проследите, чтобы ОРМ тоже этого не делал.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38538646
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DDeathМеня беспокоит то что он является NCLOB т.к там могут хранится длинные тексты.
varchar2
а длинные тексты хранить отдельно
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38538710
DDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer Можно узнать по какой причине умрет?

Стараемся делать всё правильно на AWS

ELB + пару EC2 + Memcache servers + Oracle instances multi AZ + S3

Вот только специфика проекта такая что проектировать нужно было не стандартно.

Если у вас будут советы , с радостью послушаю.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38538783
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что тут нестандартного, простите. Банальный eav с историей. Как мне кажется кто-то пытается сделать "универсальное" datawarehouse. Обычно из этого получается whorehouse. Огласите задачу в целом. МОжет что подскажем...
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38538785
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p.s. фраза авторСтараемся делать всё правильно на AWS

ELB + пару EC2 + Memcache servers + Oracle instances multi AZ + S3 как-бы намекает, что правильность в Вашем понятии это стек технологий, а не здравый смысл...
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38539728
DDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shtock
Не стоит придираться к словам, если бы не было бы здравого смысла, не возникло бы вопроса.

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

В третьих, это ответ на вопрос, то что как раз я и ждал в это теме а не пустые насмешки. Oracle (Может и другие) создают стеки + индексы на поля типа CLOB , размер стека можно определить, тем самым он выделает количество памяти в зависимости от размера стека и их количества, а стеки создаются в зависимости от количества данных в колонке.

Краткое описание задачи:
1. Есть множество сущностей (Продукты, категории, компании, новости, и т.д около 40) нужна возможность связывать любые сущности друг с другом и с самими с собой.

2. Привязка может менять статусы и от этого менять права доступа.

3. Привязка может быть иерархической

4. Привязано может быть N`ое количество сущности к другой.

5. У каждой сущности могут быть атрибуты

6. Атрибуты сущностный могут отличатся

7. Экземпляры одной сущности могут иметь разные атрибуты

Это короткое описание части задания.

Если будут более разумные предложения, с радостью выслушаю.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38539731
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeath возможность масштабирования это одна из вещей о которой не стоит забыватьEAV убивает масштабирование на корню просто в силу своей архитектуры. Эту мысль вам пытались донести
DDeath Если будут более разумные предложения, с радостью выслушаю. Традиционные классические ER диаграммы. Традиционный классический анализ нагрузки и поиск узких мест.

Но вы конечно можете напихать разных технологий и надеятся что кривая вывезет, ваше право.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38539735
DDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если кому интересно, вот диаграмма

...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38539738
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeath Если кому интересно, вот диаграммаСкажите, вы правда ничего не поняли или просто издеваетесь?
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38539739
DDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257 Вот ещё один которому колит глаза аббревиатура AWS , последнее вы были обязаны добавить да? Не сдержались? =)
Но спасибо за ответ посмотрю.

П.с не нашел как редактировать сообщения на форуме, вот ссылка на диаграмму . может я плохо выражаюсь
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38539741
DDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257DDeath Если кому интересно, вот диаграммаСкажите, вы правда ничего не поняли или просто издеваетесь?

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

П.с ещё раз спасибо!
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38539748
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeathКраткое описание задачи:
1. Есть множество сущностей (Продукты, категории, компании, новости, и т.д около 40) нужна
возможность связывать любые сущности друг с другом и с самими с собой.
2. Привязка может менять статусы и от этого менять права доступа.
3. Привязка может быть иерархической
4. Привязано может быть N`ое количество сущности к другой.
5. У каждой сущности могут быть атрибуты
6. Атрибуты сущностный могут отличатся
7. Экземпляры одной сущности могут иметь разные атрибуты
Для этой задачи у Вас диаграмма уж больно развесистая. Для вышеперечисленного достаточно
пяти таблиц:
1) Сущности
2) Типы сущностей
3) Связи между сущностями
4) Атрибуты
5) Значения атрибутов

И, кстати, для производительности гораздо губительнее кривые руки разработчика, чем все
EAV вместе взятые.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38539755
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeath Вот ещё один которому колит глаза аббревиатура AWS Гугль мне выдал American Welding Society (AWS) Сваркой соединяете базу
DDeath я выложил диаграммуНечитаемую
DDeath вот ссылка на диаграммуГораздо лучше.

По сабжу - у вас есть задача - есть некая база, к которой ходят некие клиенты за некими данными, и на которую накладываются некие ограничения. Мне, как форумчанину интересно какая именно задача, на каких моментах стоит заострить внимание и как бы я сам решал данную задачу. Вы же спрашиваете об особенностях вашего решения, не напрягаясь обоснованием почему было выбрано так или иначе. Вполне возможно что вы правы, но некоторые слова типа: "любые сущности" "могут иметь разные атрибуты" наводят на мысль что вы не решаете свою задачу, а пытаетесь решить ее в "общем виде". Грабли этого подхода хорошо известны, если вы хотите по ним пробежатся, то смотрите про "сам себе злобный буратино".
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38539767
DDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov Ох уж спасибо пряморуким Форумчанинам, как же без вас. Вот только это то что вы и описали , только для более удобной разработки(Да я знаю , в ущерб производительности) Django делает таблицы для всех типов сущностей. Но вопрос был не в этом, благодарю вас О пряморукий форумчанин, можете идти дальше, большое вам спасибо!

SERG1257 Я прошу прошения, я действительно плохо выражаю мысли и плюс ко всему я не из России и мой русский ужасен.
Но я постараюсь объяснить для того чтобы вы смогли мне помочь.

У нас совмещается в проекте большое количество под проектов будь то магазин , бизнес площадка, площадка для поиска работы и т.д и всё это должно быть в одной базе и перевязано между собой. Изначально архитектура планировалась такая как описал Dimitry Sibiryakov , но т.к джанго в ущерб производительности дает другие инструменты мы решили создать под каждую сущность таблицу(Модель). Проблема возникла тогда , когда нам нужно было создавать атрибуты для сущностей и давать им значения и мы решили взять сделать её по типу EAV (хотя тогда и не знали что это такое), когда возникла задача сортировать по значению атрибута, оракл ругнулся что тип NCLOB не сортируем (но это было решено с помощью CAST и TO_NUMERIC) и тогда же, меня начало это беспокоить, я понял что оракл относится к этому типу полей по другому и я хотел выяснить как использование NCLOB может сказаться на производительности при том что у этого поля есть дубляж для каждого языка. А так же надеялся что мне смогут предложить замену EAV или хотя бы частичную замену.

П.с я не DBA и не архитектор а просто программист, по части БД я мало что знаю.

П.с.с надеюсь я описал всё более или менее понятно.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38539774
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeathджанго в ущерб производительности дает другие инструменты мы решили создать
под каждую сущность таблицу(Модель).
"Если мне Джанго работать мешает, ну её нахрен, работу мою." Почти (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38539779
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeath У нас совмещается в проекте большое количество под проектов будь то магазин , бизнес площадка, площадка для поиска работы и т.д и всё это должно быть в одной базе и перевязано между собойТо бишь о задаче, запросах, оптимизации вы не знаете или не хотите узнавать, надеясь что все будет хранится в EAV структуре и само как нибудь устаканится. И при этом печетесь о производительности.
DDeath Проблема возникла тогда , когда нам нужно было создавать атрибуты для сущностей и давать им значения и мы решили взять сделать её по типу EAV (хотя тогда и не знали что это такое), когда возникла задача сортировать по значению атрибута, оракл ругнулся что тип NCLOB не сортируемсм пост от _мод, только уточню, что наверное не varchar2, а nvarchar2 для значений втискивающихся в 4000 символов. Для более длинных значений, пусть клиент идет за добавкой в дополнительную таблицу, например найдя в конце TITLE - "продолжение следует".
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38539780
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeathУ нас совмещается в проекте большое количество под проектов будь то магазин , бизнес площадка, площадка для поиска работы и т.д и всё это должно быть в одной базе и перевязано между собой. Изначально архитектура планировалась такая как описал Dimitry Sibiryakov , но т.к джанго в ущерб производительности дает другие инструменты мы решили создать под каждую сущность таблицу(Модель).Меня лично больше всего это смущает. "джанго в ущерб производительности дает другие инструменты", а мы потом берем эти инструменты и пытаемся выжать из них какую-то производительность. Сначала сами себе создаем трудности, а потом героически их преодолеваем. Может, вам вернуться на шаг назад, взять в команду спеца по ораклу и привлечь его к проектированию? Или пойдите по пути всяких соцсетей - возьмите бесплатную MySQL/Postgre и используйте как тупое хранилище данных.

P. S. Я бы всю логику на PL/SQL написал, но вы же все равно это делать не будете, поэтому даже не буду пытаться советовать.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38539795
DDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rockclimber Dimitry Sibiryakov Меня смущает то что вы не знаете условий задачи поставленной перед нашей командой и начинаете хаить. Если выбор пал на джангу значит таковы условия, мой вопрос в другом...

SERG1257 Опять 25, я тут значит я хочу услышать мнения, и узнать...

SERG1257см пост от _мод, только уточню, что наверное не varchar2, а nvarchar2 для значений втискивающихся в 4000 символов. Для более длинных значений, пусть клиент идет за добавкой в дополнительную таблицу, например найдя в конце TITLE - "продолжение следует".


Я учту спасибо, мне предлагали вариант хранения в NoSql типа MongoDB но вот что делать с привязкой к объекту...
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38539949
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeath rockclimber Dimitry Sibiryakov Меня смущает то что вы не знаете условий задачи поставленной перед нашей командой и начинаете хаить.DDeath SERG1257 Опять 25, я тут значит я хочу услышать мнения, и узнать...Вы хотели услышать мнения? Вы их услышали.
Если хотите советов по существу - давайте ваши условия, заставившие вас выбрать джангу. А пока, если у вас "ущерб производительности" наблюдается в одном из узлов, то я рекомендую в первую очередь от этого ущерба избавиться.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38539978
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ упорно желает превращения реляций в электронную таблицу. Потому что ну просто ж заколебали эти реляции. То ли дело екзель... шивабода!
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38539982
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeathП.с я не DBA и не архитектор а просто программист, по части БД я мало что знаю.

П.с.с надеюсь я описал всё более или менее понятно.

Здесь все такие, не волнуйтесь.

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

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

Не сравнивайте коммерческую или промышленную БД с тухлым и плоским социалом.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540009
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov достаточно
пяти таблиц:
1) Сущности
2) Типы сущностей
3) Связи между сущностями
4) Атрибуты
5) Значения атрибутов

4-х:
1. Сущности (только самые общие атрибуты)
2 Атрибуты сущностей
3 Иерархические классификаторы (в .т.ч. классификатор типов сущностей)
4 Метаописание сущностей - фактически ER модель
все чистый EAV
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540013
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

Теория всего, называйте вещи своими именами. Вечная мечта тех, кто не может смириться с фрагментарностью знания.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540403
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это же магазин, правильно? И не яндекс.маркет, поэтому, с большой степенью вероятности, специализированный, т.е. количество классов продуктов ограничено.

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

Джангу не знаю. Что за инструменты от которых "нельзя отказаться" она дает?
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540658
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Infernal V. Raven,

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

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

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

И это, кстати, очень дружественно поиску, потому что ему человеческое слово приятнее набора наименований аргументов.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540674
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257EAV убивает масштабирование на корню просто в силу своей архитектуры...
EAV убивает поиск по базе.

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

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

Infernal V. RavenНа мой взгляд EAV тут не нужен. По крайней мере такой всеобъемлющий. Советую выносить классы продуктов в отдельные таблицы, общие атрибуты которых будут представлены в виде атрибутов...
IMHO проблема, скорее всего, написать относительно универсальную систему, где пользователь сможет забивать не только "отдельные продукты" но и описывать "классы продуктов".

Тут, в целом, для неподготовленного программиста EAV всем хорош, кроме, полной жуткости при попытки сделать более менее вменяемый поиск.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540682
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще, из практики. Обильная нормализация невыносима большинству. Через месяц мучений операторы наедут на начальство, начальство на творца: убери not null отовсюду, потому что мы не знаем какой тут стиль, цвет, длина, ширина, высота и состав действующего вещества. Через полгода от развесистых сущностей остается практический оптимум.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540692
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev где пользователь сможет забивать не только "отдельные продукты" но и описывать "классы продуктов".

Ага, упали-отжались пользователи, прям спят и видят как бы подробнее классифицировать свой стул. Возможность сокращать количество сущностей будет использована на 101%, а возможность расширять только на хороший пинок начальства.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540716
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevEAV убивает поиск по базе.

Видел на мой взгляд неплохую реализацию, где параллельно EAV наиболее важные поля
дублировались в обычных таблицах (индексированных) для поиска. Работа с системой шла на
EAV, поиск шел по обычным таблицам.
А проиндексировать непосредственно EAV помешало что?..

Сделай милость, покажи как выглядит запрос по "обычным таблицам" при поиске "N критериев
из M с сортировкой по убыванию релевантности".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540726
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevВидел на мой взгляд неплохую реализацию, где параллельно EAV наиболее важные поля дублировались в обычных таблицах (индексированных) для поиска. Работа с системой шла на EAV, поиск шел по обычным таблицам.Да дублирование вполне приемлимо, но если это сделано обдуманно и при соответствующем уровне контроля. А это достигается недешево. Я специально это обошел стороной в своем ответе ТС. Начинать надо с адекватной модели.
Leonid Kudryavtsev... при нынешних ценах на жесткие диски ...Ну я не совсем согласен. Все-таки тоже недешевые они.
авторIMHO проблема, скорее всего, написать относительно универсальную систему, где пользователь сможет забивать не только "отдельные продукты" но и описывать "классы продуктов".Да-да, универсальную систему, в которой можно хранить и обрабатывать что угодно. Как обычно, в ущерб ... (нужное вставить). Дешевле работу по добавлению классов продуктов оставить разработчикам. В рамках поддержки (она же тоже должна быть, кушать-то надо).
авторТут, в целом, для неподготовленного программиста EAV всем хорош, кроме, полной жуткости при попытки сделать более менее вменяемый поиск.да не только поиск, а работа с иерархиями (если таковые имеются), отчеты, интеграция и т.д.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540732
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
debloggerАга, упали-отжались пользователи, прям спят и видят как бы подробнее классифицировать свой стул. Возможность сокращать количество сущностей будет использована на 101%, а возможность расширять только на хороший пинок начальства.
Вместо пользователи подставь IT-отдел, группа сопровождения, себя любимых и что хочешь....

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

Если же следовать современным стандартам для разработки, то простенькая операция "добавить поле" выльется: изменить структуру таблиц, перегенерить entity/view object'ы, добавить контролы на экран, пересобрать проект, передеплоить и т.д. Даже исключая шаг тестирования...не радостно )))

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

Более-менее успешную реализацию видел.

Так же как и разработчиков, которые сделали достаточно крупную систему на EAV, а потом ходили плакали горючими слезами. Когда к EAV пришлось приделывать отчеты и встали проблемы динамически развернуть EAV в нормальные таблицы на нескольких десятках тысяч записей (люди через View пытались сделать). Но и данная система сейчас живет, эксплуатируется и продается.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540757
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Infernal V. RavenДа дублирование вполне приемлимо, но если это сделано обдуманно и при соответствующем уровне контроля. А это достигается недешево. Я специально это обошел стороной в своем ответе ТС. Начинать надо с адекватной модели.
Начинать надо с адекватной команды и адекватной задаче.

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

Бывает и неадекватные задачи (или неадекватные люди, которые адекватные задачи сделали неадекватными).

Infernal V. Raven...да не только поиск, а работа с иерархиями (если таковые имеются), отчеты, интеграция и т.д.
Согласен. Главное не увлекаться.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540777
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevБолее-менее успешную реализацию видел.Поделись с общественностью, что это за система.
Так же как и разработчиков, которые сделали достаточно крупную систему на EAV, а потом ходили плакали горючими слезами. Когда к EAV пришлось приделывать отчеты и встали проблемы динамически развернуть EAV в нормальные таблицы на нескольких десятках тысяч записей (люди через View пытались сделать). Но и данная система сейчас живет, эксплуатируется и продается.Эта весьма ограниченно эксплуатируется и продается. Не вводи в заблуждение.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540788
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevНачинать надо с адекватной команды и адекватной задаче.Ну имеется ввиду, что задача адекватная, поскольку за неадекватную задачу люди должны браться с четким планом действий (принуждение, посыл, побег, угрозы и т.п. в нужном порядке). Т.к. форум технический, эту часть я опустил, считая ее завершенной.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540795
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Известный тебе треугольник.

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

http://www.altsoft.spb.ru/index.php?option=com_content&task=view&id=25
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540876
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevИзвестный тебе треугольник.Если это пример успешной реализации, то это мягко говоря, не так. Там как раз по-второму приведенному тобой сценарию. И именно вот это:
Когда к EAV пришлось приделывать отчеты и встали проблемы динамически развернуть EAV в нормальные таблицы на нескольких десятках тысяч записей (люди через View пытались сделать)...Но и данная система сейчас живет, эксплуатируется и продается.я относил к ней. Да и не EAV она давно, как раз после решения этих проблем.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540909
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovА проиндексировать непосредственно EAV помешало что?..

Х.з.
Наверное разработчики не сумели )))
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38540955
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторEAV убивает поиск по базе.Ага, и каждая строчка собирается в разы медленнее, чем в обычной структуре

авторВидел на мой взгляд неплохую реализацию, где параллельно EAV наиболее важные поля дублировались в обычных таблицах (индексированных) для поиска. Работа с системой шла на EAV, поиск шел по обычным таблицам.А теперь главный вопрос, а нахрена тогда он EAV нужен если делать параллельную структуру, как памятник? минувшей свободе?
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541011
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev Дублирование информации при нынешних ценах на жесткие диски не выглядит таким уж большим расточительством.Главная беда дублирования информации не цена хранения, а согласованность (девятый вагон это не тот что перед десятым, а тот что после восьмого)
Leonid Kudryavtsev для неподготовленного программиста EAV всем хорошДля молодого программиста EAV хорош именно свободой.
Не надо приглашать ДБА на интимный процесс общения с заказчиком, не надо пытать аналитика, чтобы узнать как именно изменятся правила игры (у нас гибкая структура),
не надо натыкатся на ограничения или устанавливать права доступа (чтобы какая та база меня ограничивала - НИЗАЧТО),
не надо изучать этот странный SQL - ограничимся привычными getValue, setValue
А если будет тормозить, то применим самую новомоднюю технологию ABC (заодно научусь с ней работать) и/или XYZ - (тоже будет хорошо в резюме смотрется.
Я все это знаю точно, потому что сам был таким.
Leonid Kudryavtsev живет, эксплуатируется и продается. А вот в это верю абсолютно. Маркетинг рулит. Но то что система приносит бабки не делает ее прямой.
Leonid KudryavtsevИногда более-менее адекватная модель просто не существует. И попытка сделать сначала адекватную модель приводит к тому, что все на стадии построения адекватной модели и застреваетТакое бывает на мертворожденных проектах, которые никому не нужны.
Leonid Kudryavtsevнеадекватные люди, которые адекватные задачи сделали неадекватными+1. Партия сказала надо, программист ответил есть, бюджет попилен, а до продакшена авось не дойдет.
Leonid KudryavtsevЕсли же следовать современным стандартам для разработки, то простенькая операция "добавить поле" выльется: изменить структуру таблиц, перегенерить entity/view object'ы, добавить контролы на экран, пересобрать проект, передеплоить и т.д. Даже исключая шаг тестирования...не радостно )))Именно. И наличие или отсутствие alter table add field непринципиально.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541084
DDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насчёт того почему Django...
1. Задача была поставлена так, сделать всё с 0 за 2 месяца или продолжить разработку на криво написанной системе которая работает под Битрикс`ом.

2. Нужно было сделать так чтоб потом начальник когда разговаривал с инвестором и сказал бы ему "Не беспокойтесь завтра функционал уже будет" то функционал должен быть готов.

3. Чёткой задачи нету и требования меняются каждый день.

Насчёт поиска, решение за счёт технологии.. например ElasticSearch на на отдельных инстенсах и индексирование при добавлении новых объектов.


Проект это не только магазин, это бизнес площадка, которая обедняет в себе соц-сеть предпринимателей , онлайн магазины B2B/B2C, документооборот, платформа инновации , платформа тендеров и объединение Торгово Промышленных палат.

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


Как это не странно но при такой задаче нам не выделили спеца по Oracl и собирали мы всё сами(Программисты) вот почему тут такая каша.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541090
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeath 1. Задача была поставлена так, сделать всё с 0 за 2 месяца или продолжить разработку на криво написанной системе которая работает под Битрикс`ом.
2. Нужно было сделать так чтоб потом начальник когда разговаривал с инвестором и сказал бы ему "Не беспокойтесь завтра функционал уже будет" то функционал должен быть готов.
3. Чёткой задачи нету и требования меняются каждый день.

http://www.sql.ru/forum/24207/e-yordan-kak-vyzhit-v-beznadezhnom-proekte
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541105
DDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257 Спасибо за тонкий намек, вот только разговаривать можно много а решать проблемы когда нужно то все как бы не причем, так что оставьте себе свои намеки и если больше ничего дельного сказать не можете я бы попросил вас больше не заходить сюда.

А также все кто решить кричать что то на подобие "Криво" , "хреново", "идиоты" и т.д

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

Благодарю!
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541128
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeath я бы попросил вас больше не заходить сюда. Ваша просьба отклонена
DDeath вменяемая критика с приведение доводов, буду рад.То есть мои доводы против EAV для вас были невменяемые. Поищите по этому форуму по слову EAV более другие.
DDeath но обратились мы сюда т.к технологии технологиями а архитектура очень важная штука и мнения важно было услышать.Услышали, легче стало?
DDeath решать проблемы когда нужно то все как бы не причемРешать проблемы все равно придется вам. Хотите вы этого или нет.

По вашему описанию проект выглядит безнадежным. Это не ваша вина, это ваша беда, но вы не одиноки. Советую таки найти и прочитать Йордана.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541132
joiner_plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сделай два поля, одно varchar2 для коротких названий, другое clob для длинных

Код: plsql
1.
2.
3.
4.
5.
SQL> desc tst ;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 A                                                  VARCHAR2(4000)
 B                                                  CLOB



потом одень вью
Код: plsql
1.
2.
3.
SQL> create or replace view vw_tst as select NVL(b,a) as TITLE from tst ;

View created.



теперь это вью можно подсунуть CMS
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541137
joiner_plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, а для записи можно тригер instead of insert/update на вью повесить
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541150
DDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257 Я вижу я вас сильно задел. Нет, доводов я не увидел , только слова. Где ссылки на пруфы или хотя бы просто объяснить примерно почему? Насчёт меня не беспокойтесь , я свои проблемы решаю ... Вот только вы мне кажется не работали не над чем серьезным если верите в идеальный старт, суда по тому что вы описали любой проект обречен на провал(Тот же Facebook или может даже google) или вы думаете у всех был идеальный старт?

joiner_plus Большое спасибо , я не знаю что такое view и как он работает но сейчас почитаю.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541162
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) В чем глобальный смысл и профит хранить clob и varchar2 в разных полях?
2) А тригеры с CLOB'ами будут корректно работать? Хотя, для данной задачи это (различия в работе триггеров с varchar2 и clob) наверное не принципиально.

А вообще, микс CLOB/varchar2 в одном view лично меня сильно смущает
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541188
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник

http://docs.oracle.com/cd/B28359_01/appdev.111/b28393/adlob_tables.htm#i1012220

Читать Inline and Out-of-Line LOB Storage, как я понимаю, экономия места между varchar2 и lob в случае inline lob storage будет максимум на lob-локаторе.

Т.ч. заморачиваться со View чисто из-за производительности хранения не стоит. IMHO.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541194
DDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev это то о чём я писал тут 15478584
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541205
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вашу фразу совершенно не понял. У самого на рабочем месте стоит Oracle. Ни стеков, ни индексов на LOB ни разу не видел )))

...Oracle (Может и другие) создают стеки + индексы на поля типа CLOB , размер стека можно определить, тем самым он выделает количество памяти в зависимости от размера стека и их количества, а стеки создаются в зависимости от количества данных в колонке...
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541229
joiner_plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevЧитать Inline and Out-of-Line LOB Storage, как я понимаю, экономия места между varchar2 и lob в случае inline lob storage будет максимум на lob-локаторе.

хренового понимаете. экономия varchar2 вовсе не в размере на диске ...
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541248
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
joiner_plusхренового понимаете. экономия varchar2 вовсе не в размере на диске ...
а в чем?
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541257
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevВашу фразу совершенно не понял. У самого на рабочем месте стоит Oracle. Ни стеков, ни индексов на LOB ни разу не видел )))
Ну, допустим, это значит, что хреново смотрите.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 
Connected as test
 
SQL> select distinct segment_type from dba_segments where segment_type like '%LOB%';
 
SEGMENT_TYPE
------------------
LOBINDEX
LOB PARTITION
LOBSEGMENT
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541267
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeathМеня смущает то что вы не знаете условий задачи поставленной перед нашей командой и начинаете хаить.
Видите ли, есть определённые наработанные практики, говоря по современному, паттерны - ну например, ходить ногами, видеть глазами, думать головой. Эти практики возникли не от балды, а потому, что несут изрядные заведомые преимущества. Если архитектура системы предлагает думать задницей, то возникает вопрос - зачем? какие преимущества это даёт и чем покрывает недостатки? - причём на этот вопрос нужен убедительный ответ, причём к этому ответу стоит относиться скептически. Если архитектор при этом очевидно плохо ориентируется в вопросе, вероятность ошибочности архитектуры становится неотличима от 100% Каждый из нас видел.. неудачно спроектированные системы с такими вот крутыми фенечками (а большинство так и писали их прежде, чем набрали опыта), каждый из нас имеет опыт разгребания проблем с ними. Поэтому когда возникает очередной велосипед "нестандартного решения", либо Вы сумеете очень внятно объяснить, почему не подходят стандартные, либо же услышите иронию, сарказм и прочие советы не думать, что Вы единственный умный человек на планете.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541296
DDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer Извините, не но заметил не одного сообщения где я выражаюсь как будто я умнее кого то, чего не скажешь об остальных.

Я уже раз десять прошу увидеть эти паттерны , но их нет.. Каждый предлагает свою альтернативу(За что им спасибо) но никаких наработанных паттренов для решения задачи нету. Djnago в вопрос вообще не лезит т.к структурой управляю я, и видя то как многие цепляются к нему меня просто сильно радует, т.к EAV был выбран не из за Django.

А также мне не кто не дал внятного ответа чем именно плох мой подход и где могут быть подводные камни, все только и бубнят про то что это криво( А почему??? ), убивает масштабирование? (КАК??) судя по статьям про EAV ничего плохого не слышал, только поиск .. Но это решаемое с помощью ElasticSearch , Solr , Sphinx и т.д (То есть индексированием). Так где же проблема ? Даже про стеки в Oracle мне некто не мог сказать (Это те умные которые кричат что криво) хотя изначально я ждал только этого ответа(Если посмотрите на мой вопрос).

Так почему же это плохо??? Чем?? Если вы всё так хорошо знаете , объясните пожалуйста тупому или дайте ссылку хотя бы, а то то что я читал мне не помогло.

Большое спасибо.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541379
bazinga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
joiner_plusсделай два поля, одно varchar2 для коротких названий, другое clob для длинных

Код: plsql
1.
2.
3.
4.
5.
потом одень вью
[src PLSQL]
SQL> create or replace view vw_tst as select NVL(b,a) as TITLE from tst ;

View created.



теперь это вью можно подсунуть CMS

Вы осознаете, что поскольку NVL определяет тип возвращаемого значения по типу первого аргумента, то во вьюхе колонка TITLE будет иметь тип CLOB? Почему бы тогда сразу не хранить все в CLOB?

Не говоря уже о том, что все операции с CLOB'ом, предоставляемым вьюхой будут в 10 раз медленнее, есть проблема с невозможносью использования MERGE + instead of триггеры и т.п.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541557
joiner_plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazingaВы осознаете, что поскольку NVL определяет тип возвращаемого значения по типу первого аргумента, то во вьюхе колонка TITLE будет иметь тип CLOB? Почему бы тогда сразу не хранить все в CLOB?

потому, что конвертация варчара во вьюхе никак не повлияет на механизм доступа в лежащей под низом таблицу.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541643
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeathДаже про стеки в Oracle мне некто не мог сказатьЯ, честно говоря, не очень понимаю (точнее, совсем не понимаю), о каких стеках выговорите. За 3 года работы с ораклом я слышал только о стеке вызова функций, но вам надо совсем не это.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541697
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Страшно представить, может автор говорит про очереди в оракле, но чуть запутался?
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541714
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShtockСтрашно представить, может автор говорит про очереди в оракле, но чуть запутался?Автор упоминал стек только в таком контексте:
DDeathOracle (Может и другие) создают стеки + индексы на поля типа CLOB , размер стека можно определить, тем самым он выделает количество памяти в зависимости от размера стека и их количества, а стеки создаются в зависимости от количества данных в колонке.Я тут подумал - может, он (чем черт не шутит!) про составной индекс или function-based?
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541717
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeathКаждый предлагает свою альтернативу(За что им спасибо) но никаких наработанных паттренов для решения задачи нету.

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

Кому лень творчески мыслить тот засоряет форумы идеями о теории всего. Кому не лень, тот проектирует каждый раз новую бд и на форуме ему и рассказать о ней нечего, поскольку она ну аще не универсальная.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541718
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таким образом паттерн на бэкграунде для девелоперов рантайма формируется нытиками. И блджад для них все и делается. А вы думали откуда взялась винда без кнопки старт?
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38541971
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
joiner_plusпотому, что конвертация варчара во вьюхе никак не повлияет на механизм доступа в лежащей под низом таблицу.
И какой будет профит от этого супер механизма доступа в прикладной системе?

joiner_plusхренового понимаете. экономия varchar2 вовсе не в размере на диске ...
а в чем?
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38542571
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeath Нет, доводов я не увидел , только слова. Где ссылки на пруфы или хотя бы просто объяснить примерно почему?Ссылок не будет, новых доводов тоже. Просто попробую подъитожить
EAV очень плохо в продакшене ибо
1 Это медленно - строка собирается из частей размазанных по таблице. Чем больше полей тем дольше собирается. Поиск по нескольким полям превращается в тихий ужас. Создание параллельной структуры вне субд неизбежно поднимает вопрос о согласованности и транзакционной целостности.
2 Запросы громоздкие, стало быть ошибится легко
3 Все проверки базы данных похоронены в принципе, опечатка в названии сущности или атрибута может быть незамеченной довольно долго
4 Это нифига не более гибко, ибо создавать новые сущности и атрибуты несложно и в традиционном стиле, а править структуру при EAV СЛОЖНЕЕ, ибо никто ошибку не выдаст.
5 Попытка доступа к базе средствами отличными от вашей программы (например постоителем отчетов) неизбежно приведет к созданию вьюх на ваш EAV моделирующих обычную реляционную базу. Если же эти вьюхи материализовать и индексировать, то выигрыш в производительности должен натолкнуть на мысль - а почему бы сразу так не сделать, зачем тогда он (EAV) нужен.
6 Использование продвинутой и недешевой СУБД Oracle в качестве тупого хранилища данных напоминает стрельбу из пушки по воробьям.

В то же время для разработки макета "proof of concept" указанные недостатки не являются критичными, только надо отдавать себе отчет, что в смете должно быть время на рефакторинг кода. Если у вас нет на это времени, это проблема вашего руководителя проекта. Если же рефакторинга проведено не было, макет пошел в продакшн, не удивляйтесь глюкам, тормозам, "лучам ненависти", ярлыкам "говнокод" и т.п.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38542629
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257EAV очень плохо в продакшене ибо
0) Какой-нибудь маньяк обязательно захочет получать из неё данные в готовом эксельном виде.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38542760
DDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257

авторЭто медленно - строка собирается из частей размазанных по таблице. Чем больше полей тем дольше собирается. Поиск по нескольким полям превращается в тихий ужас. Создание параллельной структуры вне субд неизбежно поднимает вопрос о согласованности и транзакционной целостности.

Таблицы 3 - 4 в которых по одному - два поля, поиск нет, а вот сортировка да..

авторЗапросы громоздкие, стало быть ошибится легко

Возможно , но на данном этапе 90% запросов создаются ORM

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

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

авторЭто нифига не более гибко, ибо создавать новые сущности и атрибуты несложно и в традиционном стиле, а править структуру при EAV СЛОЖНЕЕ, ибо никто ошибку не выдаст

Когда у вас динамические атрибуты у каждого экземпляра сущности , это удобно и гибко (ИМХО).

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

Это возможно , но я готов этим пожертвовать.

авторИспользование продвинутой и недешевой СУБД Oracle в качестве тупого хранилища данных напоминает стрельбу из пушки по воробьям.

По мне так база данных она для того и сделана чтоб хранить данные?
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38542881
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeathавторИспользование продвинутой и недешевой СУБД Oracle в качестве тупого хранилища данных напоминает стрельбу из пушки по воробьям.

По мне так база данных она для того и сделана чтоб хранить данные?Во-первых, не просто хранить, а еще и с особым цинизмом не давать выстрелить себе в ногу , даже когда этого очень хочется или ПМ требует.
Во-вторых, конкретно оракл имеет некоторое непустое множество платных функций, которые позволяют делать это более эффективно, то есть, продолжая аналогию, надевают на вашу ногу бронежилет, на пистолет ставят предохранитель и т. п. Вы же делаете в точности как чукча из анекдота, который обманул таксиста (денег заплатил, а сам не поехал). Не нужны возможности оракла - возьмите постгрес, денег сэкономите...
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38542896
R7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
R7
Гость
DDeathВозможно , но на данном этапе 90% запросов создаются ORM

EAV c ORM скрестить. Буква R мешать не будет?

Интересует. У кого-нить , вообще, это получалось?
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38542901
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
R7У кого-нить , вообще, это получалось?
Те, кто способен эффективно использовать EAV и те, кто использует ORM - это два
непересекающихся множества.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38543775
DDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
R7 Нет, т.к EAV у нас сделан на основе связей, не понимаю к чему был этот вопрос.

Items :

ID:
1
2
3
4

Attributes

ID: 1,2,3

NAME: "TITLE" , "DETAIL_TEXT" , "IMAGE"

VALUES

ID: 1,2,3

Value: "Blah blah" , "Deateil blah blah" , "images/blh.jpg"

Item: 1,1,1 - Ссылка на Item

Attribute 1,2,3 - Ссылка на атрибут

Relationship

ID: 1,2,3

Item_child: 1 , 2 , 3 - Ссылка на Item

Item_parent: 1, 1, 1 - Ссылка на Item

Quantity: 10 , 11, 31

Type: ENUM: relationship / hierarchy


Вот и вся наша архитектура.

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

Вот все об этом говорят, о мистических паттернах и т.п а назвать что слабо ? Или лишь бы ляпнуть? На подобие "Где то что то слышал"
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38543879
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeathВот все об этом говорят, о мистических паттернах и т.п а назвать что слабо ? Или лишь бы ляпнуть? На подобие "Где то что то слышал"Я говорил не о паттернах, а о компонентах СУБД. Это немного разные вещи. Какие именно компоненты вам понадобятся - я не знаю. Во-первых, хорошо бы детально знать задачу, во-вторых, хорошо бы сравнить с конкурентами, в том числе с опенсорсными. Эта задача сама по себе большая, я не собираюсь ей заниматься.

Если интересуют паттерны, могу рассказать про два антипаттерна. В один вы уже вляпались (EAV*), во второй (slow by slow) - наверняка вляпаетесь в скором времени.

*EAV, конечно, не совсем антипаттерн, но минусов у него, имхо, больше, чем плюсов.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38543899
DDeath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rockclimber Ради интереса смотрел у Wordpress , там EAV , у битрикса(Не знаю если можно с него брать пример) тоже подобие EAV...
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38547025
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeath,
а какая вообще нагрузка планируется?
Количество объектов хранения, среднее количество аттрибутов на объект, количество запросов на чтение/запись в секунду?
Ну, например, ожидаемое на январь 2015го?

А то без этого оценивать и рекомендовать сложно.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38547123
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rockclimber*EAV, конечно, не совсем антипаттерн, но минусов у него, имхо, больше, чем плюсов.
EAV паттерн для довольно узкой задачи - вывести object inspector со значениями произвольных свойств (ну то есть по объекту вывести таблицу свойство-значение). Для остальных он довольно конкретный антипаттерн.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38547125
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDeath rockclimber Ради интереса смотрел у Wordpress , там EAV
И стоит отметить дивную скорость его работы даже в однопользовательском режиме.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38549918
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerrockclimber*EAV, конечно, не совсем антипаттерн, но минусов у него, имхо, больше, чем плюсов.
EAV паттерн для довольно узкой задачи - вывести object inspector со значениями произвольных свойств (ну то есть по объекту вывести таблицу свойство-значение). Для остальных он довольно конкретный антипаттерн.
EAV - это вообще имхо для NoSQL баз. На них это просто отлично накладывается.
...
Рейтинг: 0 / 0
Oracle + таблица атрибутов
    #38550047
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan DurakEAV - это вообще имхо для NoSQL баз. На них это просто отлично накладывается.
Первый проект EAV был сделан на ISAM. Однако там только один индекс а надо два. Так что РСУБД лучше.
...
Рейтинг: 0 / 0
79 сообщений из 79, показаны все 4 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Oracle + таблица атрибутов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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