|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Нет никакого холивара. Я пока вижу - нехватку очебного материала по этим квинтетам. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 09:58 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
maytonНет никакого холивара. Я пока вижу - нехватку очебного материала по этим квинтетам. Я пока вижу нехватку цели. У любой разработки есть/должна быть некая цель - та задача или класс задач, которые она предназначена решать "действительно хорошо" - в смысле, лучше других. Именно эта цель определяет методику решения и дизайн проекта. РСУБД появились для того, чтобы просто и надёжно работать с данными. NoSQL появились для того, чтобы эффективно заменить РСУБД в некоторых задачах, для которых те слишком уж не подходят. А для чего нужна "квинтетная модель", какую задачу она решает лучше других? Тайна великая есмь. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 10:17 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Мда. Согласен. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 11:12 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Еще один патчик для учебного примера. Архитектора прошу сделать review и комментарии. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 11:53 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
softwarermaytonНет никакого холивара. Я пока вижу - нехватку очебного материала по этим квинтетам. Я пока вижу нехватку цели. У любой разработки есть/должна быть некая цель - та задача или класс задач, которые она предназначена решать "действительно хорошо" - в смысле, лучше других. Именно эта цель определяет методику решения и дизайн проекта. РСУБД появились для того, чтобы просто и надёжно работать с данными. NoSQL появились для того, чтобы эффективно заменить РСУБД в некоторых задачах, для которых те слишком уж не подходят. А для чего нужна "квинтетная модель", какую задачу она решает лучше других? Тайна великая есмь. Цель — ускорить разработку и снизить порог вхождения для человека с программистским складом ума. Это не понизит планку для программиста, а наоборот повысит её, заставляя больше вникать в бизнес и меньше в тонкости IT. Я встречаю много людей, которые заявляют, что в своём дельфи или там питоне сделают всё так же быстро. Но на практике у них не получается ни по срокам, ни по функционалу. Основная проблема в том, что им нужно ТЗ, которое они бездумно воплотят точь-в-точь, со всеми косяками аналитики и без интерфейса. Потому что сложно одновременно знать (0) язык программирования и SQL, (1) доскеры/кубернетисы/спринги/свн и CI/CD ботва, на которую забивают, (2) теорию баз данных и лучшые практики, (3) html/css/js/less/gulp/..., (4) бизнес и его нужды, (5) элементарные принципы общения с заказчиком и решения вопросов. Обычно человека хватает на 2-3 компетенции, даже если у него есть потенциал во всех. Так вот, для IdeaV должны быть хорошо прокачаны (4) и (5), остальное делается много проще, чем обычно. Это мой путь, я не навязываю. Сам я IT-энтузиаст с 1989 года, профессионально программирую с 2000. В 2006 году я сделал первый проект на этом подходе и с тех пор его развиваю, не программируя, а разрабатывая (тут большая разница). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 13:36 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
maytonЕще один патчик для учебного примера. Архитектора прошу сделать review и комментарии. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
Ну, норм, только добавить нужно: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 13:40 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyЯ встречаю много людей, которые заявляют, что в своём дельфи или там питоне сделают всё так же быстро. Но на практике у них не получается ни по срокам, ни по функционалу. Основная проблема в том, что им нужно ТЗ, которое они бездумно воплотят точь-в-точь, со всеми косяками аналитики и без интерфейса. Потому что сложно одновременно знать (0) язык программирования и SQL, (1) доскеры/кубернетисы/спринги/свн и CI/CD ботва, на которую забивают, (2) теорию баз данных и лучшые практики, (3) html/css/js/less/gulp/..., (4) бизнес и его нужды, (5) элементарные принципы общения с заказчиком и решения вопросов. Обычно человека хватает на 2-3 компетенции, даже если у него есть потенциал во всех. Так вот, для IdeaV должны быть хорошо прокачаны (4) и (5), остальное делается много проще, чем обычно. Вы не ответили на вопрос. Такую задачу решают конструкторы, 1С, SAP и т.д. Но какую роль в эффективном решении задачи играют ваши квинтеты, именно ваше решение на квинтетах какой профит даёт? И люди на этом форуме не видят никаких преимуществ и пользы в упор. Даже давая огромную скидку на непонимание некоторых деталей, или сакральное знание, которым обладаете только вы, не видно никаких преимуществ, и никакой пользы, только один вред. drynnyЭто мой путь, я не навязываю. Сам я IT-энтузиаст с 1989 года, профессионально программирую с 2000. В 2006 году я сделал первый проект на этом подходе и с тех пор его развиваю, не программируя, а разрабатывая (тут большая разница). Играть и бравировать словами "разрабатываю, а не программирую", "это не-EAV а нечто другое" -- попытка сместить фокус внимания от реальности, характеризуется обыкновенным фанатизмом. Не нужно. Перед вами не та аудитория, зачем вот это вот всё? Все, значит, идиоты, и на своих питонах делают лабуду, которую вы можете сделать накликав мышкой? Серьёзно? Открыли священный грааль, который не дался ни одной, мировой крупной компании? Ну что вы в самом деле. Давайте будем реалистами, и говорить о конкретных вещах и оставаться в конструктивном русле инженерных решений и доказательсв. А пока в ваших словах какой-то унылый маркетинг и реклама ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 14:08 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyПотому что сложно одновременно знать (0) язык программирования и SQL, (1) доскеры/кубернетисы/спринги/свн и CI/CD ботва, на которую забивают, (2) теорию баз данных и лучшые практики, (3) html/css/js/less/gulp/..., (4) бизнес и его нужды, (5) элементарные принципы общения с заказчиком и решения вопросов. Опять таки, давайте по пунктам. 0. У вас нет ЯП? Нельзя писать логику? 1. У вас нет девопса? "Разработка" на продакшене? Само себя как-нибудь развёртывает? 2. Не нужны компетенции в моделировании данных? Оно само как-нибудь? 3. UI сам себя пишет? UX сам решается? 4. Нужды бизнеса лесом, главное квинтеты? 5. Общаться с заказчиком не нужно, пусть сам тыкает мышью? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 14:19 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Сам я IT-энтузиаст с 1989 года Ууу все бесполезно, голос разума услышан не будет, такие "кулибины" в каждом виде деятельности находятся, они ищут себе сектантов-адептов и садятся им на уши. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 14:47 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
hVosttВы не ответили на вопрос. Такую задачу решают конструкторы, 1С, SAP и т.д. Я-то ответил, просто вы не хотите увидеть связь. Как раз квинтеты и позволяют создать конструктор и, в отличие от 1С и SAP, в нём нужно будет намного меньше и проще программировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 15:21 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyЦель — ускорить разработку и снизить порог вхождения для человека с программистским складом ума. Да, именно эту, простите за выражение, фигню я и ожидал услышать. "Ускорение разработки" и прочее, о чём Вы писали, не имеет ни малейшего отношения к структуре хранения данных на низовом уровне. Между ними просто нет никакой связи. Вы родили этот маркетинговый буллшит абы что-то сказать, и Ваш ответ показывает - как, собственно, и было очевидно, но из вежливости следовало проверить - что Вашей настоящей целью, как и у других бездумных энтузиастов, было "давай-ка я забабахаю псевдокрутую хрень и потешу ЧСВ, это гораздо интереснее, чем учиться правильно решать задачи". Насколько я понял, Вы развиваете это решение с 2006-го года, то есть без малого пятнадцать лет. Несмотря на накопленный за это время опыт успешных проектов, Вы не смогли без ошибки решить простейшую задачу со средневзвешенным - это очень наглядно показывает, насколько Ваше решение в действительности облегчает и ускоряет разработку. То, что Вы, получив на выборке чисел 11, 12 и 15 среднее 4.93 (если мне память не изменяет) не остановились и не задумались, всё ли правильно сделали - ещё более наглядно показывает Ваш опыт в работе с данными. Короче говоря, уж извините, но когда Вы говорите о "профессиональной работе" и о "программистском мышлении" - стоит больших усилий удержаться от откровенного хохота. В общем, действительно, приходите через пять лет и приносите нового лидера мирового рынка RAD. Обещаю, я буду здесь под тем же ником. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 15:36 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyКак раз квинтеты и позволяют создать конструктор и, в отличие от 1С и SAP, в нём нужно будет намного меньше и проще программировать. Ну вот нам всем и непонятно, почему и с какой кстати квинтеты позволяют создать конструктор. В 1С тоже модель динамическая и создаётся мышкой. Чем тут квинтеты реально помогут? Вот смотрите, давайте в лоб, если непонятно. Такая структура таблиц у вас могла бы быть для хранения мета-данных: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
И она работает! Ещё можно добавить отдельно связи с разными параметрами. Хотя и так связи можно выразить через значения атрибутов-связей. Тут всё понятно, всё семантически разложено и даже поддерживается СУБД. Например, вы не можете указать вместо типа сущности, тип атрибута, или вместо сущности сослаться на тип, СУБД не даст. Такое можно сопровождать, и даже запросы будут проще, чем у вас. Тут ваши зубодробительные квинтеты можно разложить по таблицам нормальным и понятным образом. Конечно это всё равно хуже нормализованной БД по ряду причин, но со своими плюсами (динамика), однако на порядки лучше ваших квинтетов, которые без каких-либо видимых причин вносят непомерную сложность. Вы сами видите, до сих пор народ не может въехать толком как ваша байда должна работать. Ну и нафига это всё? До сих пор непонятно, уже какая страница пошла, а вы всё ответить не можете, для чего такой овер-инжениринг был нужен? Какую цель это решает? Ну зачем это всё? Может вы недостаточно всё усложнили? Может 5 полей -- это много? Давайте как-нибудь в 3 уместим? В идеале конечно, всё в одно поле одной таблицы всё засунуть, давайте идти до конца. Ну зачем эти глупые полумеры? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 15:58 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
hVostt Код: sql 1. 2. 3. 4. 5. 6. 7.
И вот вам простая математика. Здесь для того, чтобы задать значение атрибута нужно всего 3 поля. У вас для этого понадобится 5. В отдельных случаях поля вашего квинтета лежат мёртвым грузом. hVostt Код: sql 1. 2. 3. 4. 5. 6.
А для записи сущности -- всего 2 поля, вместо 5. С другой стороны, если я хочу добавить информации, которая характеризует все сущности (например, время создания, автора и т.д. и т.п.), я легко могу это сделать здесь. В ваших квинтетах это будут атрибуты динамической модели, в то время как эти атрибуты явно статические. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 16:02 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
hVostt, Если мы сможем извлечь из квинтетной системы обобщенный интерфейс и внимательно его осмотрим - то мне кажется что на уровне системы хранения может встать обычная документная БД типа Mongo или CouchDb. Я не берусь это доказывать, но я вижу что квинтеты это даже ... Хм...избыточно что-ли. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 17:18 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Вспомнил. что где-то я это уже в каком-то виде видел, было такое дежавю. Типа похожую, по стилистике конструкцию ======================= Я.А.Фельдман Создаем информационные системы Разработка прикладных информационно-управляющих систем для предприятий, организаций и средней школы — это просто! с компакт-диском. 2006 http://www.dom-spravka.info/biblio/files_knig/d_um_oss/inf_sistemi.pdf ======================= Не ну..... что то же работает, внедрено и тп. Ну и дальше, чтобы еще лучше и больше, и быстрее и выше и сильнее! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 17:23 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
maytonЕсли мы сможем извлечь из квинтетной системы обобщенный интерфейс и внимательно его осмотрим То окажется, что и интерфейс тоже не представляет никакой заметной ценности. maytonмне кажется что на уровне системы хранения может встать обычная документная БД Или не документная. Или вообще что угодно. Хоть REDIS, хоть Teradata. Имхо, это очевидно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 17:35 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
hVostthVostt Код: sql 1. 2. 3. 4. 5. 6. 7.
И вот вам простая математика. Здесь для того, чтобы задать значение атрибута нужно всего 3 поля. У вас для этого понадобится 5. В отдельных случаях поля вашего квинтета лежат мёртвым грузом. Я пробовал использовать EAV с типизацией. Что-то типа Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Не очень изящно зато есть гарантия строгости по типам. И есть надежда что количество типов в системе - величина достаточно постоянная. 1 раз создал и забыл. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 19:32 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
maytonНе очень изящно зато есть гарантия строгости по типам. И есть надежда что количество типов в системе - величина достаточно постоянная. 1 раз создал и забыл. В таком ключе, как не крути, стоит использовать NoSQL. Там эта проблема решена и довольно изящно. Более того, если хранить мета-данные типов и атрибутов отдельно, в самой БД легко хранить данные в коллекциях, где коллекция это имя сущности, динамическое, и поля с именем атрибутов. Вообще шикардос. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 20:09 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
В общем, объяснения, зачем и кому упали эти квинтеты так мы и не получилось, и найти самостоятельными изысканиями тоже не удалось. Посему объяснения два: 1. пантенты, патентный троллинг. чего, кого хз, возможно собрать сливки после внедрения и запретить саму возможность стороннему вендору предлагать свои решения поверх данной бредовины. 2. автор изобрел для себя священную корову, и чем она сложнее внутри, тем для него лучше. с таким я тоже сталкивался, и... чего греха таить, сам подобным болел в глубокой молодости. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 20:12 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Давайте рисовать API к этой системе. В конце концов идея определяется не квинтетами а методами доступа. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Можно начать с поисков по индексированным полям. И иерархическим запросам. Архитектор? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 20:15 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
hVosttmaytonНе очень изящно зато есть гарантия строгости по типам. И есть надежда что количество типов в системе - величина достаточно постоянная. 1 раз создал и забыл. В таком ключе, как не крути, стоит использовать NoSQL. Там эта проблема решена и довольно изящно. Более того, если хранить мета-данные типов и атрибутов отдельно, в самой БД легко хранить данные в коллекциях, где коллекция это имя сущности, динамическое, и поля с именем атрибутов. Вообще шикардос. Да я тоже склоняюсь к тому что система тяготеет к NoSQL-ной. Вообще убежден что здесь идея лежит вне плоскости нормализации. Грубо говоря - наплевать на нормальные формы. Главное - дать пользователю скорость формошлёпства. И документо-шлёпства. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 20:20 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
maytonДа я тоже склоняюсь к тому что система тяготеет к NoSQL-ной. Вообще убежден что здесь идея лежит вне плоскости нормализации. Грубо говоря - наплевать на нормальные формы. Главное - дать пользователю скорость формошлёпства. И документо-шлёпства. Формошлёпство это понятно, к этому вопросов нет. Вопрос к способу реализации. Вот эти самые вымышленные квинтеты. Зачем? Как бы и лбом можно гвоздь забить. Зачем??? ))))) Меня даже уже не великий и беспощадный смысл, который вкладывал автор в это. А как он к этому пришёл. Вот как рассуждал? А что если я возьму байты, разобью их на биты, таак.. первые четыре бита будут тип, ещё четыре парент, если следующий за ним бит 0, а после него 1, то это атрибут, иначе это связь.... Вот как? Это ж почище изобретения вечного двигателя будет, там хоть цель благая. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 21:18 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Я вижу в этом другие направления развития. Например event-store и битемпоральность. Пишутся события. Мета-команды. Создания базовы типов. Создание таблиц. И собственно команды фиксации бизнес-операций. Создание гостя. Создание номера. Резервирование гостем номера. Потом соотв. UPDATES. Освобождение номера. Идеальное бэкапирование. Идеальная изоляция транзакций. Конкуренции нет вообще. Репликация упрощается. Зачем сливать всё в квинтеты? ХЗ. С этой точки зрения всё логично. Я-бы еще добавил Timestamp и тип операции (UPDATE/DELETE/INSERT). Вот как-то так. Но если строить классическую модель без event-store то идея Хвоста мне больше нравится. Лучше иметь десяток специализированных простых таблиц которые покрывают любую предметную область чем 1 универсальную со сложной семантикой которая ХЗ как себя ведет под нагрузкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 21:37 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
maytonДавайте рисовать API к этой системе. В конце концов идея определяется не квинтетами а методами доступа. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Можно начать с поисков по индексированным полям. И иерархическим запросам. Архитектор? Квинтет, он же для другого. Пользователь не пишет код и не знает ничего о квинтетах. И классы не определяет, а задает нужные объекты в редакторе типов: (подчиненные и связанные объекты расположены справа и распространяются вниз) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 21:45 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
hVosttМеня даже уже не великий и беспощадный смысл, который вкладывал автор в это. А как он к этому пришёл. Вот как рассуждал? Да как обычно в таких случаях. Начинает знакомиться с предметной областью. Читает SQL. Думает: как бы круто программировать? Натыкается на EAV: о, круто. Особенно читая статью другого такого же ламера. Пробует. Плевать, что медленно и неудобно, зато один раз напишу крутой системный софт - это же интересно - и всё будет летать. Блин. Не летает. Тогда подрихтую модель, чтобы залетало. Совсем круто! Правда, не летает, но зато совсем своё, дайте мне нобелевку! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 21:48 |
|
|
start [/forum/topic.php?fid=32&msg=39859326&tid=1539762]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 152ms |
0 / 0 |