|
|
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
vadiminfoArhat109ТЫСЯЧА таблиц в ОДНОМ запросе через UNION по 100 строк - далеко не факт, что будут быстрее чем 4 таблицы (EAV) по 100 тысяч строк в ОДНОМ запросе. Еще может иметь значение, что SQL все же заточен под соотвествие структуры МД структуре предметной области (ПО): в списке SELECT - Колонки, FROM Таблицы - элементы стуктуры. Если в ПО есть информация Зарплата (страховой, месяц, зарплат), в МД, например, таблица Зарплата (страховой, месяц, зарплат). То запросы о зраплате всех, нескольких, за квартал, и т.п. почти на естественном языке. Для EAV даже тут ломняк думать. В более сложных случаях тем более. Учитывая, что и с ОЦ в EAV все сложнее, то в запросах, возможно, надо еще учитвать возможную большую чем в нормальной МД мусорность данных. Конечно. Но здесь опять возникает вопрос динамического изменения структуры. Про него же нельзя забывать. vadiminfoПО сути EAV - это "плохая" РМД. РМД потому что там все равно таблицы, SQL и декларативный способ для реляционных БД. "Плохая", потому что нарушается требование качества структурированных МД о соотвествии структуры МД структуре ПО: 4 таблицы вместо ТЫСЯЧИ. EAV и РМД - это МД хранения данных (модель нижнего уровня) в архитектуре "модель верхнего уровня+маппинг+модель нижнего уровня". И в таком контексте уже сложнее утверждать какая из моделей хранения лучше. Ведь структура, ОЦ, манипулирование поддерживаются на верхнем уровне, и на какую МД нижнего уровня "лучше" осуществлять (вынужденный, при использовании "реляционных систем") маппинг по всем этим трем аспектам, зависит, как правило, от известных проблем с динамическим изменением структуры. И, очень важно, не смешивать две ситуации: 1000 таблиц, моделирующих 1000 разных типов сущностей, и 1000 таблиц, моделирующих один тип сущности (товар, объект на карте и т.п.) и разные его подтипы (по набору свойств). vadiminfoВ случае ТС РМД, может быть, не совсем адекватна. Причины? Скорее, реализация, все-таки, а вовсе не РМД. Например, РМД не накладывает ограничений на число свойств для случая "одного типа сущности". И отсутствующие значения, сами по себе, проблемой не являются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 10:52 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
softwarer скорее всего будет сделана тысяча первая "таблица с общей частью", в которую и пойдут такие запросы. Даже не потому, что так быстрее, а потому, что так удобнее. А это ничем не поможет. Ну хорошо, Вы отберете ID-шники объектов из 1001-й таблицы - а дальше-то что? Все атрибуты как получать? Все равно либо 1000 Union, либо 1000 left join. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 10:56 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинНу хорошо, Вы отберете ID-шники объектов из 1001-й таблицы - а дальше-то что? Все атрибуты как получать? Все равно либо 1000 Union, либо 1000 left join. Мне кажется, в стремлении возразить Вы немного потеряли... задачу. Задача "получить в одной выборке все уникальные атрибуты тысячи разнородных типов объектов" - мягко говоря, нестандартна. "Дальше-то" просто ничего, как правило эта выборка и будет ответом на задачу. Тысяча union, кстати, ничем особенно не плоха, кроме неудобного и громоздкого SQL. Технически она не так уж отличается от одной таблицы с тысячью партиций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 11:05 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
softwarer, Если "дальше-то ничего" и атрибуты не нужны - то и в EAV запрос будет не по таблице "ЗначенияAтрибутов" с 100 миллионами строк, а только по таблице "Обьекты" c миллионом, со всеми вытекающими. Насчет "задача нестандартна" - чего ж в ней нестандартного-то? Примерно такую штуку делают Яндекс-карты при вводе адреса дома - "в этом доме находятся...". Не рассматривайте задачу как "получить из базы выборку для грида", рассматривайте как "получить от Web-сервиса XML c обьектами". Тысяча union, кстати, ничем особенно не плоха, Да и отбор 1000 записей из 100 млн. "ничем особенно не плох", движок СУБД заточен именно на такие задачи, есть механизмы оптимизации и т.д. А 1000 Union - и не оптимизировать особо никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 11:23 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
softwarer, Да даже по миллиону. И даже если в реализации EAV более 4-х таблиц (например по одной на тип значений). От размера таблиц скорость работы зависит в среднем логарифмически (индексы). Запросы с Union по тысяче таблиц только парсится будут "годами"... :) и даже при наличии индексов - падение производительности надо ожидать ... линейное от количества таблиц (у каждой свой индекс). Я взял типовую для таких решений ситуацию, когда каждый отдельный пользовательский класс фактически описывает ровно один пользовательский факт. Как только, задача ставится так как поставлена - это типовое следствие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 11:24 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
БредятинаКонечно. Но здесь опять возникает вопрос динамического изменения структуры. Про него же нельзя забывать. Структура - означет само по себе что-то статичное. Если нельзя забывать об "изменении структуры", то скорей всего, структрированные МД не очень походят. Есть, например, полустрктурированные МД типа ХМL. Ну иногда можно обойтись заплаткой типа ЕАВ, представив структуру ПО кое-где в виде данных в МД. Ну мир не всегда просто затолкать в структурированную МД. Однако, структурированными данными, манипулировать, скорее всего, легче. БредятинаEAV и РМД - это МД хранения данных (модель нижнего уровня) в архитектуре "модель верхнего уровня+маппинг+модель нижнего уровня". И в таком контексте уже сложнее утверждать какая из моделей хранения лучше. Ведь структура, ОЦ, манипулирование поддерживаются на верхнем уровне, и на какую МД нижнего уровня "лучше" осуществлять (вынужденный, при использовании "реляционных систем") маппинг по всем этим трем аспектам, зависит, как правило, от известных проблем с динамическим изменением структуры. Это не имеющая ничего рационального в технологиях БД пропаганда каких-то левых или искаженых понятий, скорее всего, с целью расчистить дорогу МУМПСу (мол де раз РМД МД хранения данных, то это не на моного луче МУМПСа). Например, понятие "маппинг" имеет значение, если кто-то сподобился налобать ОМД, но хочет юзать РСУБД. "структура, ОЦ, манипулирование поддерживаются" в РМД более чем убедительно. БредятинаПричины? .... См. первый пункт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 11:26 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
vadiminfo, мне сложно как-то пояснять различия между МД, {EAV | ИМД | другиеМД}, РМД и "моделированием МД в РМД" и "конкретной моделью БД" (которая "своя")... тут есть кому растолковать внятнее. ... как тут любят писать: "в архитектуре МД - маппинг - РМД", EAV занимает промежуточное (а следовательно избыточное) место. Получается архитектура "модель - маппинг - EAV - маппинг - РМД"... если в этих терминах. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 11:33 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
Arhat109мне сложно как-то пояснять различия между МД, ... Зато это просто поясняется в толстых книгах по БД. Эти понятия и существуют для того, что упростить "пояснения" Arhat109... как тут любят писать: "в архитектуре МД - маппинг - РМД", EAV занимает промежуточное (а следовательно избыточное) место. Получается архитектура "модель - маппинг - EAV - маппинг - РМД"... если в этих терминах. :) А если оставить рациональную суть, как задумал Кодд, то тип МД определяется: способом структурирования, ОЦ и способом манипулирования (система запросов). Это существенное. В этом смысле EAV РМД. То что это некий подкласс МД в смысле похожих свойств по способу способу представления данных, ну так и ненормализованные или там нормализованные тоже подклассом можно считать. А так это все же конкретная МД лучше или хуже одна другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 12:01 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
vadiminfoСтруктура - означает само по себе что-то статичное. Если нельзя забывать об "изменении структуры", то скорей всего, структурированные МД не очень подходят. Есть, например, полуструктурированные МД типа ХМL. Ну иногда можно обойтись заплаткой типа ЕАВ, представив структуру ПО кое-где в виде данных в МД. Ну мир не всегда просто затолкать в структурированную МД. Однако, структурированными данными, манипулировать, скорее всего, легче. Структура является первым (из трех) аспектов любой МД (иначе, это просто не МД). Поэтому структурированные или "полуструктурированные", все-таки, данные, а не МД. [Да и это условность. Текст литературного произведения, например, считается "слабоструктурированными данными", но, скорее всего, в таком определении замешаны проблемы семантики, так как конструкция вполне формальная - слова и знаки пунктуации, разделенные пробелами, просто мы "не хотим" ее структурировать в БД.] Данные структурированы и в МД верхнего уровня, и в МД нижнего уровня. И в МД "еще более нижнего уровня)) Вот как выглядит отношение со схемой {S#,NAME,STATUS,CITY}: S4,Clark,20,London S5,Adams,30,Athens S2,Jones,10,Paris S1,Smith,20,London S3,Blake,30,Paris а вот как выглядит его "хранение" в модели TR: значения полей: S1,Adams,10,Athens S2,Blake,20,London S3,Clark,20,London S4,Jones,30,Paris S5,Smith,30,Paris таблица реконструкции: 5,4,4,5 4,5,2,4 2,2,3,1 3,1,1,2 1,3,5,3 все структурировано) vadiminfoЭто не имеющая ничего рационального в технологиях БД пропаганда каких-то левых или искаженых понятий, скорее всего, с целью расчистить дорогу МУМПСу (мол де раз РМД МД хранения данных, то это не на моного луче МУМПСа). Например, понятие "маппинг" имеет значение, если кто-то сподобился налобать ОМД, но хочет юзать РСУБД. Начали, вроде конструктивно, но опять ушли от сути, назвав хорошо объясненные факты (перечитайте еще раз) "не имеющей ничего рационального пропагандой")) На уровне представления пользователю, разумеется, "кто-то сподобился" показывать продаваемые товары или объекты на карте. Или накладные именно по конкретному договору, или записи конкретной накладной. То есть, типы сущностей и связи между ними. Это же очевидно)) Не хочет юзать, а вынужден использовать, потому что так научили. Это же тоже очевидно. Но РСХОД можно использовать,как применяя РМД (в классическом понимании), так и применяя РМД для реализации EAV. Обычные обоснования - ограничения РСХОД по использованию классической РМД (длина записи, "сильные блокировки" при добавлении полей и др.). vadiminfo"структура, ОЦ, манипулирование поддерживаются" в РМД более чем убедительно. Разумеется. Но, неизбежна МД верхнего уровня, и маппинг по всем трем аспектам. И с реализацией этой архитектуры и есть проблемы. vadiminfoБредятинаПричины? .... См. первый пункт. В "первом пункте" вместо "слабоструктурированные данные" использован не корректный термин "слабоструктурированные МД". Это не ответ на вопрос почему приходится использовать EAV, моделируя ее средствами РМД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 12:09 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
vadiminfo, конечно описано в толстых книгах... поэтому и "мне сложно"... ну не цитировать же тут! Некоторые конечно любят... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 12:13 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинЕсли "дальше-то ничего" и атрибуты не нужны - то и в EAV запрос будет не по таблице "ЗначенияAтрибутов" с 100 миллионами строк, а только по таблице "Обьекты" c миллионом, со всеми вытекающими. Не вижу причин оспаривать, поскольку вывод меня вполне устраивает :) Кот Матроскин Насчет "задача нестандартна" - чего ж в ней нестандартного-то? Примерно такую штуку делают Яндекс-карты при вводе адреса дома - "в этом доме находятся...". Кот, а Вы не пробовали запустить Яндекс-карты, посмотреть, что они делают на самом деле и перестать нелепо фантазировать? :) Кот МатроскинНе рассматривайте задачу как "получить из базы выборку для грида", рассматривайте как "получить от Web-сервиса XML c обьектами". А тут нет разницы. Ну ладно, допустим, Яндекс-карты работали бы так, как Вы нафантазировали. Обратились к сервису, получили от него список объектов вида id/name. При клике на объекте, если обратите внимание, идёт новый запрос к серверу, "покажи детальную информацию". Это уже ни в малейшей степени не запрос к тысяче таблиц, атрибуты идут из одной-единственной. Впрочем, я вообще не уверен, что у Яндекса для разных типов объектов заметно разные наборы атрибутов - поскольку для него аптека от школы отличается только картинкой. Кот МатроскинДа и отбор 1000 записей из 100 млн. "ничем особенно не плох", движок СУБД заточен Заточен. Но на моём ноуте будет работать слишком (с моей точки зрения) долго. Особенно если требуется мало-мальски нетривиальная фильтрация объектов. Кот МатроскинА 1000 Union - и не оптимизировать особо никак. Помнится, когда один наглый товарищ объявил себя гуру оптимизации, его попросили оптимизировать select 1 from dual. Arhat109От размера таблиц скорость работы зависит в среднем логарифмически (индексы). Само по себе это сферическое рассуждение в вакууме. Но более забавно то, что Вы, похоже, полагаете вычислительную сложность алгоритма единственной и всеобъемлющей характеристикой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 12:37 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
softwarerКот Матроскин Насчет "задача нестандартна" - чего ж в ней нестандартного-то? Примерно такую штуку делают Яндекс-карты при вводе адреса дома - "в этом доме находятся...". Кот, а Вы не пробовали запустить Яндекс-карты, посмотреть, что они делают на самом деле и перестать нелепо фантазировать? :) Пробовал - они выводят именно список обьектов. Cо всеми атрибутами или только с некоторыми (как минимум еще название, против Вашей версии "кроме ID-шников больше ничего") - вопрос итоговой верстки. Вот решат завтра спецы по интерфейсу выводить помимо названия еще часы работы сразу в списке - будем менять всю архитектуру? "Возможно самая частая ошибка проектировщика - затачивание структуры данных под текущие потребности интерфейса" (с) Хранит ли яндекс все в разных обьектах с разными свойствами или все сваливает в текстовое описание - опять же вопрос внутренней реализации Яндекса. ТС-у нужно хранить разные обьекты и выдавать разные обьекты, по постановке. Так что кто тут "потерял задачу" - вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 13:09 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
softwarer, Забавно, что как только кончаются аргументы - начинается бурный полет фантазии... вы где нашли то, что написали про "всеоблемлемость"? :) Без указания конретных ограничений, есть только общие оценки, которые больше оттолкнуть не от чего как от "сложности алгоритма", и в целом, как правило, оценки от "сложности" коррелируют с натурным экспериментом. Так что если EAV на вашем ноуте "будет сильно тормозить", то решение с кучей таблиц тормозить будет значительно сильнее. А если оно НЕ тормозит, стало быть EAV будет просто летать в тех же условиях, начиная от определенного объема данных, как только на первый план выйдет "сложность алгоритма" (логарифм против линейного роста), а не проблемы с различиями в Г-реализации "прочих" частей. Ещё раз: не надо сравнивать "теплое с мягким"... в смысле, что мнение, основанное на разнице работы с большой и малой ОДНОЙ таблицей, слабо применимо к оценке в текущей постановке задачи и выборе решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 13:12 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
БредятинаПоэтому структурированные или "полуструктурированные", все-таки, данные, а не МД. Кому как. Деление МД на структурированные и слабо структурированные может позволить, что-то важное понять об оной не вникая в детали. БредятинаНачали, вроде конструктивно, но опять ушли от сути, назвав хорошо объясненные факты (перечитайте еще раз) "не имеющей ничего рационального пропагандой")) Одно дело начать. Другое продолжить. Это не факты, а некие представления о соотношениии и способе юзание моделей. Никакой рациональной пользы от которых, скорей всего, нельзя увидеть перечитав хоть сто раз. По сравнению с Коннли, это какой-то скрежет ножем по сковордке. БредятинаНо РСХОД можно использовать,как применяя РМД (в классическом понимании), так и применяя РМД для реализации EAV. Ну используйте РСХОД. Могу себе представить. Я предпочитаю СУБД. Зная, Ваши планы по протаскиваю МУМПСа, замечу однако, что словосочетание имеет такое значение, благодаря Ораклу, Скулю и другим успешным программным системам отнесенным к классу с именем СУБД. Если бы их назвали РСХОДом, то это словосочетание было бы раскрученным. И Вы бы теперь пытались доказать что они не РСХОД. БредятинаНо, неизбежна МД верхнего уровня, и маппинг по всем трем аспектам. . Ну у Вас может быть маппинг не избежен. Я с ним сталкивался тока для маппига РОЛАП на ОЛАП. В остальных случаях как-то такой неизбежности не наблюдалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 13:24 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятинаПоэтому структурированные или "полуструктурированные", все-таки, данные, а не МД. Кому как. Деление МД на структурированные и слабо структурированные может позволить, что-то важное понять об оной не вникая в детали. До сих пор такое деление МД было не известно в теории и практике БД. И чтобы его использовать нужны критерии . Иначе, ничего понять не удастся. Например, в структуре РМД нет связей между типами сущностей. Кто-то может это интерпретировать таким образом, что МД, в которой на уровне структуры есть связи, является более структурированной)) Поскольку Вы с этим не согласны (и, конечно, не только поэтому), нужны критерии, по которым можно было бы называть одну МД более структурированной, чем другую. vadiminfoОдно дело начать. Другое продолжить. Это не факты, а некие представления о соотношении и способе юзание моделей. К сожалению, это доказанные факты. Вряд ли что-то может изменить по существу, если называть факты представлениями. Разумеется, любой факт можно назвать представлением . Это же очевидно. vadiminfoНикакой рациональной пользы от которых, скорей всего, нельзя увидеть перечитав хоть сто раз. По сравнению с Коннли, это какой-то скрежет ножем по сковордке. Я не спорю с таким Вашим представлением. Просто прошу не отвлекаться от существа обсуждаемых вопросов. Я же не отвлекаюсь. И если критикую представление какого-либо специалиста, то только по существу. vadiminfoНу используйте РСХОД. Могу себе представить. Я предпочитаю СУБД. Вы предпочитаете использовать такой термин. Я подробно объяснил, скрупулезно цитируя Дейта и др., почему "реляционные системы" не являются СУБД. Но я совершенно не возражаю, когда Вы используете аббревиатуру "СУБД". Просто потому, что все к этому привыкли. Пожалуйста, не отвлекайтесь от существа вопроса, и используйте какие угодно удобные Вам термины)) vadiminfoЗная, Ваши планы по протаскиваю МУМПСа, Опять отвлеклись от обсуждаемых проблем. Я ни слова не говорил о MUMPS, и никаких планов у меня нет. vadiminfo замечу однако, что словосочетание имеет такое значение, благодаря Ораклу, Скулю и другим успешным программным системам отнесенным к классу с именем СУБД. Почему упомянутые продукты не являются СУБД я подробно объяснил. MUMPS: 1) не является СУБД; 2) и, естественно, никакой МД в этой среде нет. Пожалуйста не отвлекайтесь от существа вопроса. В частности, Вы не объяснили по каким именно причинам приходится реализовывать на нижнем уровне EAV средствами РМД. vadiminfoЕсли бы их назвали РСХОДом, то это словосочетание было бы раскрученным. И Вы бы теперь пытались доказать что они не РСХОД. Здесь все знают какой я подлец. Но раз Вы начали обсуждать вопросы по существу, пожалуйста, не отвлекайтесь. Неудобно же перед людьми. LSV придется писать о десятках страниц бесполезных)) Или Вы хотите, чтобы я не мешал профессионалам обсуждать важные вопросы. Тогда так ясно и скажите. vadiminfoНу у Вас может быть маппинг не избежен. Я с ним сталкивался тока для маппига РОЛАП на ОЛАП. В остальных случаях как-то такой неизбежности не наблюдалось. Не наблюдалось, но делалось. Это же очевидно. Даже просто для того чтобы увидеть Фамилию вместо FirstName)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 13:50 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин Пробовал - они выводят именно список обьектов. То есть не смотрели. Подсказываю: существуют инструменты, с помощью которых можно посмотреть на запросы из браузера и ответы на них сервера. В данном случае никакого "списка объектов" сервер клиенту не возвращает вообще. Кот Матроскин(как минимум еще название, против Вашей версии "кроме ID-шников больше ничего") Будьте так любезны не приписывайте мне результатов собственной убогой фантазии. Кот МатроскинCо всеми атрибутами или только с некоторыми - вопрос итоговой верстки. Слабая попытка. Впрочем, Вы по-прежнему можете попробовать назвать хотя бы одну реальную задачу, вписывающуюся в Вашу канву. Кот МатроскинВот решат завтра спецы по интерфейсу выводить помимо названия еще часы работы сразу в списке - будем менять всю архитектуру? Ну это смотря кто будет делать. По предыдущим полётам мысли - не удивлюсь, если Вы будете уверены в необходимости такого решения. Кот МатроскинТС-у нужно хранить разные обьекты и выдавать разные обьекты, по постановке. Вот и нефиг приводить как пример систему, хранящую одинаковые объекты и их вообще не выдающую (в том смысле, в котором Вы употребляете слово "выдавать"). Кот МатроскинТак что кто тут "потерял задачу" - вопрос. Ну-ну, прямо-таки вопрос. Arhat109Без указания конретных ограничений, Не имеет отношения к ситуации с довольно конкретными указаниями ограничений. Arhat109которые больше оттолкнуть не от чего как от "сложности алгоритма" (зевая) Пара заданий в любом приличном ВУЗе: 1. Назвать алгоритмы (например, сортировки), обладающие одинаковой вычислительной сложностью и при этом кардинально отличающиеся практическим быстродействием. 2. Сконструировать ситуацию, в которой алгоритм с большей вычислительной сложностью окажется значительно быстрее алгоритма с меньшей вычислительной сложностью. Поясняю совсем просто: "вычислительная сложность" роляет только при решении задач типа "как изменится время выполнения программы на моём ноуте, если объём данных увеличить в десять раз". Но и тут существуют множество факторов, существенно меняющие картину по сравнению с напальцевыми теоретическими оценками. Arhat109вы где нашли то, что написали про "всеоблемлемость"? :) Там, где я нашёл, что Вы не написали ни слова о действительно определяющих вещах, а упомянули только вычислительную сложность, да и в той по торопыжести допустили совершенно детскую ошибку. Arhat109если EAV на вашем ноуте "будет сильно тормозить", то решение с кучей таблиц тормозить будет значительно сильнее. А если оно НЕ тормозит, стало быть EAV будет просто летать в тех же условиях, начиная от определенного объема данных, Смешно. Задача: внимательно прочитать то, что Вы написали про вычислительную сложность того и другого варианта и понять, почему Ваш вывод про "тормозить-летать" - совершенно не следует из Вами же написанного 1 . Ну про соответствие практике и заикаться незачем. 1 Если честно, я не очень верю, что разум у Вас одолеет эмоции и Вы займётесь поиском ошибки. Я, конечно, могу ткнуть пальцем, но таки предпочитаю сначала надеяться на лучшее. Чтобы не так расстраивались - на моей памяти в этом форуме именно такую ошибку делают уже второй раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 14:01 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
softwarer, Ваша ТЗ ясна и вполне аргументирована. Но.... она имеет смысл при наличии тщательно вылизанного движка, обслуживающего сабжевые тыщи таблиц. У Вас он есть ? Если да, то хорошо. Насколько он у Вас хорош - другой вопрос. Что делать тем, у кого его нет ? Садиться писать на эдак парочку чел/лет ? Ради чего ????? С пушки по воробьям.... Сначала нужно убедиться что более простой путь (ЕАВ) все таки подходит/не подходит для задачи по производительности. ИМХО, это проще, чем ваять очередной некислый по сложности движок DDL-sql, да к тому же неизвестным итоговым результатом. Скорее всего ЕАВ для такой задачи подойдет. Если объектов 1млн. и у каждого в среднем по 100-200 свойств (да хотя бы пусть по 20 наберут !), то это немного. Скромный сервачок потянет на ура... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 14:25 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
softwarerКот Матроскин Пробовал - они выводят именно список обьектов. То есть не смотрели. Подсказываю: существуют инструменты, с помощью которых можно посмотреть на запросы из браузера и ответы на них сервера. В данном случае никакого "списка объектов" сервер клиенту не возвращает вообще. Видите ли... в современных клиент-серверных системах отдельные части могут в разные моменты выступать как в роли клиента, так и в роли сервера. Что список обьектов должен запросить именно браузер - я нигде не писал, будьте так любезны не приписывайте мне результатов собственной убогой фантазии (с) В свою очередь, если список обьектов с атрибутами присутствует на страничке, которую отдали браузеру - стоит предполагать, что его-таки каким-то образом из базы извлекли. И, следовательно, задача "получить список таких обьектов с атрибутами" - не такая уж нестандартная, как кому-то казалось. P.S. softwarer, у Вас что, критические дни? Что это за переходы на личности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 14:27 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
LSVНо.... она имеет смысл при наличии тщательно вылизанного движка, обслуживающего сабжевые тыщи таблиц. У Вас он есть ? Да, он называется "СУБД". Во всяком случае, я пока что не вижу, какой ещё дополнительный движок Вы имеете в виду. Если взять постановку задачи "написать с нуля движок, который поддерживает хранение данных различных объектных типов и некий набор операций над ними", то я не вижу никаких оснований утверждать, что EAV-подход даст более компактное решение. В простых случаях они будут примерно одинаковы, по мере нарастания сложности EAV, подозреваю, начнёт кардинально проигрывать из-за сложностей с использованием стандартных механизмов СУБД. LSVСадиться писать на эдак парочку чел/лет ? ... некислый по сложности движок DDL-sql, .... Хм. Как бы деликатно сказать... "DDL-движок", если я правильно понимаю, о чём Вы - это задача на несколько минут, а не на несколько лет. LSVСкромный сервачок потянет на ура... Допускаю, что так. Поэтому и начал с "мой ноут" - если у топикстартера есть лишний сервачок адекватной мощности, то может и можно выбрать EAV. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 14:37 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин Что список обьектов должен запросить именно браузер - я нигде не писал, Слабенько. Стандартный интерфейс названного Вами проекта - именно браузер. Если у Вас в кармане есть к нему другой, секретный, клиент, общающийся с сервером по другому, секретному, протоколу, и Вы "забыли упомянуть", что имеете в виду именно его.... ну ладно, показывайте этот клиент, посмотрим его Кот МатроскинВ свою очередь, если список обьектов с атрибутами присутствует на страничке, которую отдали браузеру - Ага, судя по всему, после подсказки таки посмотрели, как же работают Яндекс.Карты. Кот Матроскинстоит предполагать, что его-таки каким-то образом из базы извлекли. При этом Ваши фантазии "как именно его извлекли" - мягко говоря, малоинтересны из-за абсолютной беспочвенности. Ни Вы, ни я не можем обоснованно утверждать, что же там за фасадом. Я, например, вообще не дам зуб, что там используется реляционная СУБД. Итого вывод: ни одного примера задачи под свою постановку Вы пока что не назвали. Единственная попытка в доступной для исследования части работает во всех смыслах иначе. Кот Матроскин P.S. softwarer, у Вас что, критические дни? Что это за переходы на личности? Хм. Хорошо, попробую высказаться подчёркнуто аккуратно. Вы в рамках нашей беседы несколько раз предлагали для решения простейших задач совершенно несуразные способы. По этой причине я вполне верю в то, что и правильное решение других задач Вы искренне предполагаете столь же несуразным, но я совершенно не вижу причин присоединяться к этой точке зрения и меня раздражают Ваши упорные попытки выдать эти решения за предлагаемые или предполагаемые мной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 14:48 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
LSVВаша ТЗ ясна и вполне аргументирована. Но.... она имеет смысл при наличии тщательно вылизанного движка, обслуживающего сабжевые тыщи таблиц. У Вас он есть ? Если да, то хорошо. Насколько он у Вас хорош - другой вопрос. Что делать тем, у кого его нет ? Садиться писать на эдак парочку чел/лет ? Ради чего ????? С пушки по воробьям.... Еще один, весьма неожиданный, аргумент против РМД (в пользу реализации EAV средствами РМД) - классическая РМД и, что главное (!), ее реализации в РСХОД, не пригодны для поддержки "тыщи таблиц"))[/quot] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 15:04 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
softwarerКот Матроскин Что список обьектов должен запросить именно браузер - я нигде не писал, Слабенько. Стандартный интерфейс названного Вами проекта - именно браузер. И что? в браузере список обьектов вполне виден, никакого дополнительного интерфейса не надо. Что именно браузер запрашивает именно этот список отдельно - "Ваши убогие фантазии"(с) Я всего лишь сказал, что список запрашивается "внутри" данной системы в принципе. softwarerКот МатроскинВ свою очередь, если список обьектов с атрибутами присутствует на страничке, которую отдали браузеру - Ага, судя по всему, после подсказки таки посмотрели, как же работают Яндекс.Карты. Да ясное дело, до этого даже не предполагал, что бразуер получает странички и их отображает. Только после подсказки, угу. softwarerКот Матроскинстоит предполагать, что его-таки каким-то образом из базы извлекли. При этом Ваши фантазии "как именно его извлекли" Э? Я говорю, что задача такая есть . Что ее решает, в частности, проект "Яндекс-карты". Как он это делает - вопрос глубоко неважный. Вы-то утверждали, что вообще "задача нестандартная", т.е. никому не нужна? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 15:18 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
Да, он называется "СУБД". Во всяком случае, я пока что не вижу, какой ещё дополнительный движок Вы имеете в виду. Хм... Удивительный ответ, учитывая реально высокий уровень Вашей квалификации и серьезность аргументов. Хотите сказать, что для того чтобы пользователь в окошечке мог сконструировать новый атрибут, достаточно лишь СУБД ? Никакой DDL-движок (который превратит поток сознания юзера в DDL-инструкции) не нужен ? Вы серьезно ???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 15:59 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
LSVДа, он называется "СУБД". Во всяком случае, я пока что не вижу, какой ещё дополнительный движок Вы имеете в виду. Хм... Удивительный ответ, учитывая реально высокий уровень Вашей квалификации и серьезность аргументов. Хотите сказать, что для того чтобы пользователь в окошечке мог сконструировать новый атрибут, достаточно лишь СУБД ? ... Вы серьезно ???? Это же очевидно. Это одно из фундаментальных отличий СУБД от СХОД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 16:05 |
|
||
|
Проектирование БД с созданием кучи таблиц
|
|||
|---|---|---|---|
|
#18+
Впрочем, я согласен, что было бы здорово, если бы пользователь не смог самостоятельно заменить батарейку в бытовом приборе (или управлять телевизором), и требовалось бы вызвать профессионала. В этом плане прочим сферам еще далеко до технологий БД. Пожалуй, только производители атомных подводных лодок и атомных электростанций добились сопоставимых с технологиями БД результатов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2013, 16:27 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38193158&tid=1541100]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
153ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 494ms |

| 0 / 0 |

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