|
|
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev это то о чём я писал тут 15478584 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 19:59 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
Вашу фразу совершенно не понял. У самого на рабочем месте стоит Oracle. Ни стеков, ни индексов на LOB ни разу не видел ))) ...Oracle (Может и другие) создают стеки + индексы на поля типа CLOB , размер стека можно определить, тем самым он выделает количество памяти в зависимости от размера стека и их количества, а стеки создаются в зависимости от количества данных в колонке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 20:08 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevЧитать Inline and Out-of-Line LOB Storage, как я понимаю, экономия места между varchar2 и lob в случае inline lob storage будет максимум на lob-локаторе. хренового понимаете. экономия varchar2 вовсе не в размере на диске ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 20:32 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
joiner_plusхренового понимаете. экономия varchar2 вовсе не в размере на диске ... а в чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 20:53 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevВашу фразу совершенно не понял. У самого на рабочем месте стоит Oracle. Ни стеков, ни индексов на LOB ни разу не видел ))) Ну, допустим, это значит, что хреново смотрите. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 21:05 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
DDeathМеня смущает то что вы не знаете условий задачи поставленной перед нашей командой и начинаете хаить. Видите ли, есть определённые наработанные практики, говоря по современному, паттерны - ну например, ходить ногами, видеть глазами, думать головой. Эти практики возникли не от балды, а потому, что несут изрядные заведомые преимущества. Если архитектура системы предлагает думать задницей, то возникает вопрос - зачем? какие преимущества это даёт и чем покрывает недостатки? - причём на этот вопрос нужен убедительный ответ, причём к этому ответу стоит относиться скептически. Если архитектор при этом очевидно плохо ориентируется в вопросе, вероятность ошибочности архитектуры становится неотличима от 100% Каждый из нас видел.. неудачно спроектированные системы с такими вот крутыми фенечками (а большинство так и писали их прежде, чем набрали опыта), каждый из нас имеет опыт разгребания проблем с ними. Поэтому когда возникает очередной велосипед "нестандартного решения", либо Вы сумеете очень внятно объяснить, почему не подходят стандартные, либо же услышите иронию, сарказм и прочие советы не думать, что Вы единственный умный человек на планете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 21:15 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
softwarer Извините, не но заметил не одного сообщения где я выражаюсь как будто я умнее кого то, чего не скажешь об остальных. Я уже раз десять прошу увидеть эти паттерны , но их нет.. Каждый предлагает свою альтернативу(За что им спасибо) но никаких наработанных паттренов для решения задачи нету. Djnago в вопрос вообще не лезит т.к структурой управляю я, и видя то как многие цепляются к нему меня просто сильно радует, т.к EAV был выбран не из за Django. А также мне не кто не дал внятного ответа чем именно плох мой подход и где могут быть подводные камни, все только и бубнят про то что это криво( А почему??? ), убивает масштабирование? (КАК??) судя по статьям про EAV ничего плохого не слышал, только поиск .. Но это решаемое с помощью ElasticSearch , Solr , Sphinx и т.д (То есть индексированием). Так где же проблема ? Даже про стеки в Oracle мне некто не мог сказать (Это те умные которые кричат что криво) хотя изначально я ждал только этого ответа(Если посмотрите на мой вопрос). Так почему же это плохо??? Чем?? Если вы всё так хорошо знаете , объясните пожалуйста тупому или дайте ссылку хотя бы, а то то что я читал мне не помогло. Большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 21:58 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
joiner_plusсделай два поля, одно varchar2 для коротких названий, другое clob для длинных Код: plsql 1. 2. 3. 4. 5. теперь это вью можно подсунуть CMS Вы осознаете, что поскольку NVL определяет тип возвращаемого значения по типу первого аргумента, то во вьюхе колонка TITLE будет иметь тип CLOB? Почему бы тогда сразу не хранить все в CLOB? Не говоря уже о том, что все операции с CLOB'ом, предоставляемым вьюхой будут в 10 раз медленнее, есть проблема с невозможносью использования MERGE + instead of триггеры и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 00:30 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
bazingaВы осознаете, что поскольку NVL определяет тип возвращаемого значения по типу первого аргумента, то во вьюхе колонка TITLE будет иметь тип CLOB? Почему бы тогда сразу не хранить все в CLOB? потому, что конвертация варчара во вьюхе никак не повлияет на механизм доступа в лежащей под низом таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 09:59 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
DDeathДаже про стеки в Oracle мне некто не мог сказатьЯ, честно говоря, не очень понимаю (точнее, совсем не понимаю), о каких стеках выговорите. За 3 года работы с ораклом я слышал только о стеке вызова функций, но вам надо совсем не это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 10:44 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
Страшно представить, может автор говорит про очереди в оракле, но чуть запутался? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 11:05 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
ShtockСтрашно представить, может автор говорит про очереди в оракле, но чуть запутался?Автор упоминал стек только в таком контексте: DDeathOracle (Может и другие) создают стеки + индексы на поля типа CLOB , размер стека можно определить, тем самым он выделает количество памяти в зависимости от размера стека и их количества, а стеки создаются в зависимости от количества данных в колонке.Я тут подумал - может, он (чем черт не шутит!) про составной индекс или function-based? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 11:14 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
DDeathКаждый предлагает свою альтернативу(За что им спасибо) но никаких наработанных паттренов для решения задачи нету. Этого верующим в паттерны и рамки хрен докажешь. А вреда от их верований дофига. Потому что в конторах которые снабжают человечество рантаймом тоже сидят люди, которые тоже хотят осчастливить человечество и в результате счастливыми становятся недоумки, а грамотные сосут. В общем итоге все ухудшается по воле недоумков. В эпикризе - электронная таблица. Кому лень творчески мыслить тот засоряет форумы идеями о теории всего. Кому не лень, тот проектирует каждый раз новую бд и на форуме ему и рассказать о ней нечего, поскольку она ну аще не универсальная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 11:17 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
Таким образом паттерн на бэкграунде для девелоперов рантайма формируется нытиками. И блджад для них все и делается. А вы думали откуда взялась винда без кнопки старт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 11:18 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
joiner_plusпотому, что конвертация варчара во вьюхе никак не повлияет на механизм доступа в лежащей под низом таблицу. И какой будет профит от этого супер механизма доступа в прикладной системе? joiner_plusхренового понимаете. экономия varchar2 вовсе не в размере на диске ... а в чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 13:22 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
DDeath Нет, доводов я не увидел , только слова. Где ссылки на пруфы или хотя бы просто объяснить примерно почему?Ссылок не будет, новых доводов тоже. Просто попробую подъитожить EAV очень плохо в продакшене ибо 1 Это медленно - строка собирается из частей размазанных по таблице. Чем больше полей тем дольше собирается. Поиск по нескольким полям превращается в тихий ужас. Создание параллельной структуры вне субд неизбежно поднимает вопрос о согласованности и транзакционной целостности. 2 Запросы громоздкие, стало быть ошибится легко 3 Все проверки базы данных похоронены в принципе, опечатка в названии сущности или атрибута может быть незамеченной довольно долго 4 Это нифига не более гибко, ибо создавать новые сущности и атрибуты несложно и в традиционном стиле, а править структуру при EAV СЛОЖНЕЕ, ибо никто ошибку не выдаст. 5 Попытка доступа к базе средствами отличными от вашей программы (например постоителем отчетов) неизбежно приведет к созданию вьюх на ваш EAV моделирующих обычную реляционную базу. Если же эти вьюхи материализовать и индексировать, то выигрыш в производительности должен натолкнуть на мысль - а почему бы сразу так не сделать, зачем тогда он (EAV) нужен. 6 Использование продвинутой и недешевой СУБД Oracle в качестве тупого хранилища данных напоминает стрельбу из пушки по воробьям. В то же время для разработки макета "proof of concept" указанные недостатки не являются критичными, только надо отдавать себе отчет, что в смете должно быть время на рефакторинг кода. Если у вас нет на это времени, это проблема вашего руководителя проекта. Если же рефакторинга проведено не было, макет пошел в продакшн, не удивляйтесь глюкам, тормозам, "лучам ненависти", ярлыкам "говнокод" и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 18:00 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
SERG1257EAV очень плохо в продакшене ибо 0) Какой-нибудь маньяк обязательно захочет получать из неё данные в готовом эксельном виде. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 18:39 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
SERG1257 авторЭто медленно - строка собирается из частей размазанных по таблице. Чем больше полей тем дольше собирается. Поиск по нескольким полям превращается в тихий ужас. Создание параллельной структуры вне субд неизбежно поднимает вопрос о согласованности и транзакционной целостности. Таблицы 3 - 4 в которых по одному - два поля, поиск нет, а вот сортировка да.. авторЗапросы громоздкие, стало быть ошибится легко Возможно , но на данном этапе 90% запросов создаются ORM авторВсе проверки базы данных похоронены в принципе, опечатка в названии сущности или атрибута может быть незамеченной довольно долго Согласен, но за это отвечает код программы. А вот опечатки быть не может т.к в таблице значений хранится ссылка экземпляр Item(из которого порождаются сущности) и ссылка на атрибут (Один атрибут используется несколькими сущностями) авторЭто нифига не более гибко, ибо создавать новые сущности и атрибуты несложно и в традиционном стиле, а править структуру при EAV СЛОЖНЕЕ, ибо никто ошибку не выдаст Когда у вас динамические атрибуты у каждого экземпляра сущности , это удобно и гибко (ИМХО). автор5 Попытка доступа к базе средствами отличными от вашей программы (например постоителем отчетов) неизбежно приведет к созданию вьюх на ваш EAV моделирующих обычную реляционную базу. Если же эти вьюхи материализовать и индексировать, то выигрыш в производительности должен натолкнуть на мысль - а почему бы сразу так не сделать, зачем тогда он (EAV) нужен. Это возможно , но я готов этим пожертвовать. авторИспользование продвинутой и недешевой СУБД Oracle в качестве тупого хранилища данных напоминает стрельбу из пушки по воробьям. По мне так база данных она для того и сделана чтоб хранить данные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 20:47 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
DDeathавторИспользование продвинутой и недешевой СУБД Oracle в качестве тупого хранилища данных напоминает стрельбу из пушки по воробьям. По мне так база данных она для того и сделана чтоб хранить данные?Во-первых, не просто хранить, а еще и с особым цинизмом не давать выстрелить себе в ногу , даже когда этого очень хочется или ПМ требует. Во-вторых, конкретно оракл имеет некоторое непустое множество платных функций, которые позволяют делать это более эффективно, то есть, продолжая аналогию, надевают на вашу ногу бронежилет, на пистолет ставят предохранитель и т. п. Вы же делаете в точности как чукча из анекдота, который обманул таксиста (денег заплатил, а сам не поехал). Не нужны возможности оракла - возьмите постгрес, денег сэкономите... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 22:42 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
DDeathВозможно , но на данном этапе 90% запросов создаются ORM EAV c ORM скрестить. Буква R мешать не будет? Интересует. У кого-нить , вообще, это получалось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 23:05 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
R7У кого-нить , вообще, это получалось? Те, кто способен эффективно использовать EAV и те, кто использует ORM - это два непересекающихся множества. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 23:12 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
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 Вот и вся наша архитектура. авторВо-вторых, конкретно оракл имеет некоторое непустое множество платных функций, которые позволяют делать это более эффективно, то есть, продолжая аналогию, надевают на вашу ногу бронежилет, на пистолет ставят предохранитель и т. п. Вы же делаете в точности как чукча из анекдота, который обманул таксиста (денег заплатил, а сам не поехал). Не нужны возможности оракла - возьмите постгрес, денег сэкономите... Вот все об этом говорят, о мистических паттернах и т.п а назвать что слабо ? Или лишь бы ляпнуть? На подобие "Где то что то слышал" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 15:24 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
DDeathВот все об этом говорят, о мистических паттернах и т.п а назвать что слабо ? Или лишь бы ляпнуть? На подобие "Где то что то слышал"Я говорил не о паттернах, а о компонентах СУБД. Это немного разные вещи. Какие именно компоненты вам понадобятся - я не знаю. Во-первых, хорошо бы детально знать задачу, во-вторых, хорошо бы сравнить с конкурентами, в том числе с опенсорсными. Эта задача сама по себе большая, я не собираюсь ей заниматься. Если интересуют паттерны, могу рассказать про два антипаттерна. В один вы уже вляпались (EAV*), во второй (slow by slow) - наверняка вляпаетесь в скором времени. *EAV, конечно, не совсем антипаттерн, но минусов у него, имхо, больше, чем плюсов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 16:28 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
rockclimber Ради интереса смотрел у Wordpress , там EAV , у битрикса(Не знаю если можно с него брать пример) тоже подобие EAV... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 16:38 |
|
||
|
Oracle + таблица атрибутов
|
|||
|---|---|---|---|
|
#18+
DDeath, а какая вообще нагрузка планируется? Количество объектов хранения, среднее количество аттрибутов на объект, количество запросов на чтение/запись в секунду? Ну, например, ожидаемое на январь 2015го? А то без этого оценивать и рекомендовать сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2014, 12:33 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38541205&tid=1540990]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 177ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...