powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Oracle + таблица атрибутов
25 сообщений из 79, страница 2 из 4
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
25 сообщений из 79, страница 2 из 4
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Oracle + таблица атрибутов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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