|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
hVosttsoftwarerНапоминает то, как писали софт в шестидесятые годы. Правда, тогда последнему идиоту не пришло бы в голову строить одну модель данных над другой, совершенно перпендикулярной. Тогда бы эти "квинтеты" реализовали бы поверх байтиков на диске, и не исключено, получили бы вполне приличное для тех лет решение, какой-нибудь предок ADABAS-а. Это называется клиника. Когда ищешь не эффективное решение, а наиболее хитровывернутым способом с переподвыподвертом решить абсолютно тривиальную задачу. Но до меня начало таки доходить в чём смысл. Дело в патенте. Да, я уже встречался с таким. Когда человек патентует наколеночное решение, элементарный алгоритм на экселе, который любое школо-ло напишет за пару дней, но оно уже в продакшене и в крупной компании. А потом тупо ходит и снимает сливки. Это не шутка, в моей практике я с этим сталкивался. И тогда всё становится на свои места. Все эти квинтеты -- не более чем пыль в глаза. Тут не нужно ума палата, что увидеть, что решение -- хреновое по всем фронтам, и это ещё мягко сказано.Какие еще патенты на алгоритмы? Это только в штатах. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 22:00 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Siemargl, При чем тут штаты? У нас тоже есть патентное бюро. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 22:29 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
iOracleDevА что он запатентовал и где? Иерархические СУБД известны давно, закостылить разрешение отношений сущностей и множественное наследование, скрестить с EAV и попытаться запихнуть в реляционную субд, все это уже давно в том или ином виде делалось, он не пионер, если покопаться в дореляционной эпохе и в ее начале, таких опубликованных в виде статей материалов найдется вагон и маленькая тележка, по идее его патент не должен был быть принят, нельзя патентовать общеизвестные вещи и вещи которые публиковались ранее. В статьях на хабре они об этом писали. Собственно я реально больше не могу найти ни одного вменяемого объяснения этой вакханалии. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 22:32 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
maytonhVostt, Да мне тоже непонятно зачем данные и метаданные нужно хранить в общей таблице. Кто сказал про таблицу? В постановке задачи про таблицу ничего нет: Как назвать эту структуру и подход, основанные на EAV? . Всё несколько хуже иначе, чем вам это кажется на первый взгляд. И я сейчас не о патентной паранойе (не уподобляйтесь хабрадолдонам, прошу). Обсуждаемый подход хранит квинтеты на носителе (диске, флэшке, RAM), сплошным ковром. Их можно хранить в порядке возрастания ID, чтобы сэкономить на одноименном индексе. Также на диске хранится подобие индекса по двум значениям квинтета: Entity+Attribute, Attribute+Value, чтобы можно было быстро найти физический адрес квинтета на том ковре, не зная ID, но имея ID его родителя или ID типа и значение. Всё это обслуживается ядром, функционал которого примерно на 98% уже сделан в любой РСУБД, поэтому эмуляция этого подхода была сделана в РСУБД. Это временно — прототип, сделанный для подтверждения концепции. Далее мы перепишем ядро какой-то свободной СУБД: выкинем лишнее и допишем совсем немного (даже скорее соберем из других мест СУБД). А вам, уважаемый Хвост, предлагаю встретиться здесь лет через пять и обсудить тему. Если вас не прихлопнут, конечно, в глухой подворотне за ваш язык и манеру общения. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 22:53 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyА вам, уважаемый Хвост, предлагаю встретиться здесь лет через пять и обсудить тему. Отличное предложение. Форум видел многих энтузиастов-изобретателей, и подобное предложение звучало не раз - но Вы имеете шанс стать первым, кто таки действительно придёт и покажет свои успехи. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 22:59 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
maytonПатчик на свой DDL. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
У меня вот так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 23:01 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynny, ok я поменяю порядок колонок. А имена почему такие сокращенные? Я с вашего позволения сохраню свои. Мне они... более информативны. И что MySQL является вашей основной платформой разработки? КМК это не наилучший выбор. ADD KEY t_val (t,val) - это я так понимаю модный аналог CREATE INDEX... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 23:10 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
hVosttSiemargl, При чем тут штаты? У нас тоже есть патентное бюро.У нас и в Европе алгоритмы не патенуются ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 23:21 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnymaytonhVostt, Да мне тоже непонятно зачем данные и метаданные нужно хранить в общей таблице. Кто сказал про таблицу? В постановке задачи про таблицу ничего нет: Как назвать эту структуру и подход, основанные на EAV? . Всё несколько хуже иначе, чем вам это кажется на первый взгляд. И я сейчас не о патентной паранойе (не уподобляйтесь хабрадолдонам, прошу). Обсуждаемый подход хранит квинтеты на носителе (диске, флэшке, RAM), сплошным ковром. Их можно хранить в порядке возрастания ID, чтобы сэкономить на одноименном индексе. Также на диске хранится подобие индекса по двум значениям квинтета: Entity+Attribute, Attribute+Value, чтобы можно было быстро найти физический адрес квинтета на том ковре, не зная ID, но имея ID его родителя или ID типа и значение. Друг. Это не будет работать! Я имею в виду сплошным ковром. Эволюция DBMS показывает что типизированные и dbf подобные файловые штуки не летают! Они могут работать только в том случае когда твоя система - рид-онли. Но как только по ней пойдут транзакции на обновление - твой ковер посыпется. В нем появится плавающее свободное пространство и только ондному богу известно какие надо ставить параметры ватер-линии для блоков страниц и сегментов. Да к чему это! Это уже 20 лет решено в реляционных базах. Это вынесено в механику движков. А ты что? Пытаешся еще и одним махом решить задачу ХРАНЕНИЯ? Это вообще капец нерешаемая задача особенно в условиях когда работаем с документооборотм произвольной системы Х в которой нет ни таблиц ни каких статистических свойств ни закономерностей. Есть просто простыня атрибутов и значений. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 23:31 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
SiemarglУ нас и в Европе алгоритмы не патенуются Техническое решение, не сам алгоритм. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 23:35 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Просто как я услышал про сортировку с целью оптимизации какого-то там хранения - мой ДБА-шный мозг не выдержал. Пока грелась идея об альтернативе ЕАВ - мне было понятно. Типизация там. Дерево - тоже понятно. Метадата как часть основных данных. Но когда афтор говорит об альтернативных RAM, флешках ... тут мне стало плохо и почему-то вспомнились создатели FVMAS, Стебелек и прочие Кроносы. Вобщем обозначте приоритеты вашей системы. Главный приоритет - универсализм мы все поняли и вроде-бы даже никто и не поспорил. Конструкторы там... Вобщем вот в таком вот аспекте. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 23:37 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Знатный холивар получился... Пора завязывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 23:41 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyА вам, уважаемый Хвост, предлагаю встретиться здесь лет через пять и обсудить тему. Если вас не прихлопнут, конечно, в глухой подворотне за ваш язык и манеру общения. Хм.. drynnyне уподобляйтесь хабрадолдонам, прошу Хех, ну лан ))) Я понял. Вы делаете свою СУБД. Сейчас у вас есть DML, и визуальное проектирование "движком", а там не за горами и DDL. Понял-понял. Профитами тут не пахнет, решается задача с нуля придумать способ хранения схемы и данных. Ну просто непонятно, зачем это? Ведь всё это можно делать и в любой СУБД. Создавать таблицы, добавлять атрибуты и с помощью DDL и с помощью визуальных редакторов, гораздо по-мощнее вашего надо сказать. Более того, существуют средства, как из UML получить готовенькую БД, дофигища решений. Конечно, чтобы не изобретать, вам придётся подстраваться, ODBC, JDBC и прочие интерфейсы городить. SQL опять же, ваш язык всёж нафиг никому не упёрся, как не крути. Даже NoSQL давно осознали, что SQL даже со всеми своими недостатками это маст хев и многие приделали или приделывают к себе SQL синтаксис для запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 23:43 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
d7iЗнатный холивар получился... Пора завязывать. Да нет холивара. Клещами из парня вытаскивают информацию, раскалёнными. Только сейчас выяснилось, что речь не о способе организации данных в СУБД, а вообще в целях своя СУБД. И пока этой СУБД в итоге не будет говорит не о чем совершенно. Так называемый "прототип", лежащий в единственной табличке, это курам на смех, а не решение. Но может (чем чёрт не шутит), своё решение будет не так уж катастрофически сильно отставать от СУБД версий эдак 2000-ых годов. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 23:47 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Еще один патчик. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 23:50 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
mayton Код: plsql 1. 2. 3.
в данном случае тип данных это не примитив, а домен поиск по домену, вроде понятно ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 00:54 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
все мои вопросы и критика в связи с новой полученной информацией, кстати, снимаются :) новая субд! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 00:56 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
maytonА эти магические константы такие как 3 и 13 - зарезервированы? ПОзволю свою ремарку по этому поводу.... это не константы, это обычные квинтеты, они не то что бы зарезервированы, они просто так записаны в БД. Эти цифры указывают на тип данных (это в статьях на хабре и картинках, скопированных автором топика сюда): 3 - это number, 13 - это string Дата Заезда будет иметь up=9 Если я правильно уловил суть, то в случае, если Вы будете создавать свою БД на основе квинтетов тип number вполне может иметь любое другое значение ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 07:15 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynny Собственно Многие-ко-многим будут выглядеть так: iduptypordval348300Гость349300Номер3501300Бронирование351348003523490035335135013553523502 Почему "Гость" имеет тип string? Из-за того, что ФИО гостя надо записать в столбец value для id=351? Почему "Бронирование" имеет тип "number"? Вообще не смог придумать вариантов... А даты проживания куда писать? P.S. Ну какие же тупые эти диванные эксперты... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 07:58 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Mr.Fontaine, Там ошибка copy/paste. Вот структура для бронирования с датами бронирования, заезда и выезда. idtypeparentordervalue1110ROOT3300SHORT4400DATETIME8800CHARS9900DATE131300NUMBER141400SIGNED349300Номер3501300Бронирование351348003523490035335135013553523502356400Дата бронирования357900Заезд358900Выезд359356350336035735043613583505 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 08:41 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Теперь "Гость" потерян. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 08:55 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynny, похоже опять copy/paste подвёл (строки с id=348 нет). ну да ладно Плохо, что у некоторых строк столбйы value пустые.... Так ФИО гостя записывается в строку с id=353? А зачем id=351? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 08:55 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
maytonДруг. Это не будет работать! Я имею в виду сплошным ковром. Эволюция DBMS показывает что типизированные и dbf подобные файловые штуки не летают! Они могут работать только в том случае когда твоя система - рид-онли. Но как только по ней пойдут транзакции на обновление - твой ковер посыпется. В нем появится плавающее свободное пространство и только ондному богу известно какие надо ставить параметры ватер-линии для блоков страниц и сегментов. Да к чему это! Это уже 20 лет решено в реляционных базах. Это вынесено в механику движков. А ты что? Пытаешся еще и одним махом решить задачу ХРАНЕНИЯ? Это вообще капец нерешаемая задача особенно в условиях когда работаем с документооборотм произвольной системы Х в которой нет ни таблиц ни каких статистических свойств ни закономерностей. Есть просто простыня атрибутов и значений. Да, брат, штука в том, что это уже работает . Да, в виде прототипа в самой замухрыжистой СУБД, с огромными накладными расходами, с избыточной организацией данных и прочим. Если бы не было этого прототипа и ролика и разных тестов, то твое заявление звучало бы убийственно. Но прототип есть, и заявление уже не канает. Я могу забить весь терабайтный диск квинтетными данными (с документооборотом произвольной системы Х), сделать на нём приложение и оно будет вполне сносно работать. А теперь я постепенно буду выкидывать из СУБД ненужное (например, ограничение на размер полей неактуально и много там всего), добавлять работу с данными, которая сейчас в ядре прототипа, сокращать избыточность и менять другие вещи под себя (да-да, я знаю, о чем говорю), чтобы работало всё это всё более и более быстро. В итоге будет уже не исходная СУБД, а тот ковер — решение твоей нерешаемой задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 09:01 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyДа, брат, штука в том, что это уже работает . Да, в виде прототипа в самой замухрыжистой СУБД, с огромными накладными расходами, с избыточной организацией данных и прочим. Если бы не было этого прототипа и ролика и разных тестов, то твое заявление звучало бы убийственно. Но прототип есть, и заявление уже не канает. Я могу забить весь терабайтный диск квинтетными данными (с документооборотом произвольной системы Х), сделать на нём приложение и оно будет вполне сносно работать. А теперь я постепенно буду выкидывать из СУБД ненужное (например, ограничение на размер полей неактуально и много там всего), добавлять работу с данными, которая сейчас в ядре прототипа, сокращать избыточность и менять другие вещи под себя (да-да, я знаю, о чем говорю), чтобы работало всё это всё более и более быстро. В итоге будет уже не исходная СУБД, а тот ковер — решение твоей нерешаемой задачи. 1) Давай я вместо ковра тебе предложу некоторые решения. - BerkeleyDb. Это старичок от мира Unix. Работает уже давно. О нём мало кто знает в мире NoSQL что удивительно. - Tarantool. Развитая система индексов + оптимизации для In-Memory и быстрых вставок для дискового хранилища. Все вышеперечисленные системы должны поддерживать вторичные индексы. 2) Мне очень не нравится термин "оно будет вполне сносно работать". От него пахнет непопаданием в SLA и NFR. Вобщем нужно его ужесточить. Акцентировать на том что система ориентирована только на документоообоот. И не предполагает long-term transactions, и аналитики. Про консистентность тоже умолчим. Будем просто надеятся что операции а документами будут обеспечиваться атомарностью логики основного приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 09:23 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
d7iЗнатный холивар получился... Пора завязывать. наоборот!!! drynny... (да-да, я знаю, о чем говорю) ... это "квинтет головного мозга" запущенный случай, не спугните пациента, изучим его получше ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 09:56 |
|
|
start [/forum/topic.php?fid=32&msg=39859069&tid=1539762]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
others: | 239ms |
total: | 394ms |
0 / 0 |