|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Siemarglmayton, softwarer, хоть я и любитель оценить потребление ресурсов, но во-первых мерять нужно с умом, как и весь бенчмаркинг впрочем. И 100Мб может оказаться и хорошим и плохим результатом, в зависимости от дальнейшей функции от нагрузки во-вторых мне больше не понравилось по ссылке Тем не менее, при 20-25 запросах в секунду (пиковая нагрузка при работе 20 пользователей), сервер укладывается в требования по производительности — 1 секунда на отклик. В целом ресурсы его недогружены, хотя это самый бюджетный вариант: 1 ядро 2.4 ГГц при 1 ГБ оперативной памяти.25RPS это какой то трэш вне зависимости от задачи собственно, может там задача на расчет 100 биткойнов, но сомневаюсь и не вникал Там к заметке приложен тест-скрипт, в котором перечисленны запросы к разным диапазонам дат, сущностям, условиям и прочему. То есть на каждый запрос делается: 1) проверка токена авторизации и прав пользователя 2) выбирается и разбирается нужный шаблон рабочего места 3) собираются метаданные запрошенных объектов 4) делается выборка из нескольких таблиц (фильтр, агрегаты, сортировка) 5) шаблон заполняется данными и готовая страница возвращается пользователю Пункт 4 занимает основное время, остальное — миллисекунды. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 15:29 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
maytonДавайте я немножко сделаю шаг назад. Я уже спрашивал Архитектора про API. На основании индексной информации я сделал набросок к квинтетному интерфейсу. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Я включил базовый набор поисковых атрибутов с учотом индексов. Они расположены таким образом чтобы обеспечивать быстрый доступ к множествам квинтетов. Все прочие проекции которые можно придумать по идее должны покрываться этим API. Дополнительные фильтры по прочим полям я пока не включил. Их можно отфильтровать позже. Исключение - метод quintetChainStartWith(). Его задача - выборка поддеревьев по id корня. drynny - прошу вас дать комментарии по этому API. Чего в нем еще не хватает для полноценной работы? А какова цель этого api? Вы же не хотите получить квинтеты и склеивать их, надеюсь. API есть готовое, оно реализует основные функции платформы: cmdМетодid объектаОписаниеauthpostАвторизация пользователя, возвращает токены XSRF и авторизации_d_aliaspostidСохранить псевдоним для ссылочного реквизита_d_attrspostidСохранить атрибуты реквизита_d_delpostidУдалить тип_d_del_reqpostidУдалить реквизит_d_newpost-Создать новый тип_d_not_nullpostidУстановить флаг "Обязательный" у реквизита_d_nullpostidСнять флаг "Обязательный" у реквизита_d_refpostidСоздать ссылку на тип_d_reqpostidДобавить реквизит_d_savepostidСохранить имя типа, его базовый тип и признак обязательности_d_uppostidПереместить реквизит на 1 позицию выше среди равных_m_delpostidУдаление объекта_m_movepostidПеремещение подчиненного ообъекта под другого родителя_m_newpostid типаСоздание объекта заданного типа_m_savepostidСохранить значение и реквизиты объекта, если они заданы_m_setpostidИзменить / создать / удалить реквизит объекта_m_uppostidПереместить объект на 1 позицию выше среди равныхdictget-Список независимых типов объектовdir_adminget, post-Список файлов и директорий, действия с нимиedit_objgetidДанные для формы редактирования объектаedit_typesget-Данные для Редактора типовobjectget, postid типаДанные для формы списка экземпляров типа объекта, команда на удалениеreportget, postid отчетаДанные выполненного запроса (отчета), параметры, команда на выполнение изменений ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 15:37 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynny, вы продаете описание интерфейса вот в таком виде? Дружище - это несеръезно! Здесь нет типа возвращаемого параметра. Тоесть я щас должен глядя на это просто догадаться что мне вернут и будет ли это коллекция или атом? Почему у вас нет описания хотя-бы на SOAP/GraphQL или в крайнем случае на Swagger? Вы проделали тонну работ с 2006 года но у вас отсутствует элементарное! Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 18:41 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
maytondrynny, вы продаете описание интерфейса вот в таком виде? Дружище - это несеръезно! Здесь нет типа возвращаемого параметра. Тоесть я щас должен глядя на это просто догадаться что мне вернут и будет ли это коллекция или атом? Почему у вас нет описания хотя-бы на SOAP/GraphQL или в крайнем случае на Swagger? Вы проделали тонну работ с 2006 года но у вас отсутствует элементарное! Почему? Я не пилю ядро с 2006 года, а делал перерывы (например, с 2008 по 2014 развития ядра не было). API вообще появилось в конце прошлого года и ещё не устоялось. В таблицу не смог скопировать ячейки описания из экселя, а файлы тут никто не скачивает (прилагаю) и по ссылкам не ходит, где всё есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 20:28 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Спасибо. Эксцель файл более плотный хотя все таки не достаточный. В вашей конторе... эээ "Интеграл" (?) есть техно-писатель который верстает документацию? Вообще кто у вас есть? Есть вы. Сколько еще примерно людей участвуют в разработке? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 20:48 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
maytonСпасибо. Эксцель файл более плотный хотя все таки не достаточный. В вашей конторе... эээ "Интеграл" (?) есть техно-писатель который верстает документацию? Вообще кто у вас есть? Есть вы. Сколько еще примерно людей участвуют в разработке? Ядро писал я один, но мне помогал друг, как специалист по безопасности, искал дыры и давал советы. Он же иногда советовал как реализовать некоторые моменты. Еще я обращаюсь к различным дизайнерам при необходимости. Все остальные материалы, на которые здесь даны ссылки, созданы мной. Прикладные разработчики про квинтеты ничего вообще не знают. Им это не нужно. API у меня попросили, я сделал. Если вам интересно, то можете присоединиться, кстати. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 21:12 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
mayton, не могу после заявленных утверждений пройти мимо, несколько цитат с сайта этой скромной системы :) Выберите свой формат, способ и продолжительность обучения из 5 вариантов Бесплатно. Все необходимые материалы предоставляются. 3-дневный курс. Стоимость: 8900 руб. (в группе), 28900 руб. (индивидуально). 5-дневный курс. Стоимость: 12900 руб. 8, 16, 24 или 40-часовой курс. Стоимость: 1000 руб./час. Ответы на вопросы, помощь, программирование. Любая длительность. 1500 руб./час. — Вы научитесь программировать простые веб-приложения: проектировать базу данных, организовывать бизнес-логику, создавать запросы SQL (как в MySQL, Posgre, ...) и экранные формы, используя HTML, CSS, Javascript. (Posgre -- чё? ) — Работе в Интеграле вас можем научить только мы . Все вложения окупятся с первого же заказа, на который с нашей платформой вы потратите минимум времени, а результат будет достаточно эффектным, чтобы продавать потом ваши услуги. — Даже опытные программисты часто сталкиваются с тем, что не могут понятно объяснить то, как решается задача на практике, заказчику. Интеграл максимально упрощает процесс как разработки, так и общения с клиентами. Дополнительный инструментарий в вашем портфеле — плюс к вашей деятельности и имиджу. (интеграл вообще всё делает сам и даже заказчиков находит) и.. любой сайт лохотронов-разводил Доходы на практике — 90% наших слушателей начинают зарабатывать уже на практических занятиях. Наши коучи вам в помощь Прибыльно и проверено — Проверенные стратегии сводят на минимум потери и увеличивают процент успешных сделок до 80% ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 21:31 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyЯ не пилю ядро с 2006 года, а делал перерывы (например, с 2008 по 2014 развития ядра не было) А с 2006 по 2008 и с 2014 по 2019-й оно таки развивалось? Мне просто любопытно, сколько Вам понадобилось времени на то, чтобы написать и отладить 2300 строк кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 22:12 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
hVosttРаботе в Интеграле вас можем научить только мы Как там было у классиков... "Любая деятельность, учить которой выгоднее, нежели заниматься ей самому - лохотрон"? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 22:14 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Я вот в 90х задумал написать комьютерную сетевую игру на сокетах. Танчики. И кирпичики. До сих пор - в статусе тех задания. Я уже 20 раз технологию поменял. Сначала это был MS-DOS в VGA mode. Потом Windows 98/OpenGL... Вобщем ... когда буду на пенсии... Короче некоторые проекты нельзя закончить. Их можно только прекратить. Но с нашим топиком мне кажется что рост системы шел не от идеи квинтетов а от улучшений уже работающей системы документооборота. Ядро или приложение? Яйцо или курица? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 22:19 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
softwarerdrynnyЯ не пилю ядро с 2006 года, а делал перерывы (например, с 2008 по 2014 развития ядра не было) А с 2006 по 2008 и с 2014 по 2019-й оно таки развивалось? Мне просто любопытно, сколько Вам понадобилось времени на то, чтобы написать и отладить 2300 строк кода. Товарищ готов говорить про всё, что угодно. Про количество строк, по какие-то 100 мб в вакууме. Но не готов ответить какую задачу решают квинтеты, и почему именно они решают её эффективнее, чем классический EAV -- раз уж выбран был именно такая основа архитектуры. Забиваю гвозди пассатижами. Выяснилось, что остальные инструменты не нужны, вредны и избыточны. А я уже 10 собачих будок так построил, заказчики довольны! Сколько сэкономили. Потрачено не больше 100 гвоздей на будку. А вас сколько гвоздей уходит, а? Ну-ка приведите свои графики. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 23:31 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
maytonЯ вот в 90х задумал написать комьютерную сетевую игру на сокетах. Танчики. И кирпичики. До сих пор - в статусе тех задания. Я уже 20 раз технологию поменял. Сначала это был MS-DOS в VGA mode. Потом Windows 98/OpenGL... Вобщем ... когда буду на пенсии... Короче некоторые проекты нельзя закончить. Их можно только прекратить. Но с нашим топиком мне кажется что рост системы шел не от идеи квинтетов а от улучшений уже работающей системы документооборота. Ядро или приложение? Яйцо или курица? Ну, такое тоже было (1994 год, ZX Spectrum, ходилка-стрелялка на ассемблере), но тут не тот случай. В 2003 я с нуля делал систему управления контентом на EAV в филиале сотовой компании. Ну, тормозила, но как-то работала (года три). То был конструктор, и мне понравилось. Хотя остальное я фигачил на PL/SQL и всяких PHP в обычных базах Oracle, MySQL и MSSQL. А потом мне нужно было навести порядок в планово-экономическом отделе компании, где всё было в бумажных журналах (я был типа управляющего). Днем я методом кнута и пряника пересаживал бабушек в эксель (смотрите, сумма прописью тут сама пишется!), а потом в систему на квинтетах (чтобы набрать счет вы просто тычете в товары из списка). А вечерами опять с нуля продумывал и писал эту самую систему, а на ней немедленно делал приложение. Ядро таки было первым. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 23:44 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
hVosttТоварищ готов говорить про всё, что угодно. ... Но не готов ответить какую задачу решают квинтеты, и почему именно они решают её эффективнее, чем классический EAV Это изначально было очевидно. В детстве я читал книжку про инженерное мышление, и там на первых страницах было сказано: большинство людей, думая, как решить задачу, хватаются за первый попавшийся способ и начинают работать, не думая об альтернативах. Именно в этом месте чаще всего упускается оптимальное решение, да и сколько-нибудь вменяемое решение вообще. Ровно тот случай. Квинтеты ничего эффективнее не решают, просто они попались первыми. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 23:59 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
softwarerЭто изначально было очевидно. В детстве я читал книжку про инженерное мышление, и там на первых страницах было сказано: большинство людей, думая, как решить задачу, хватаются за первый попавшийся способ и начинают работать, не думая об альтернативах. Именно в этом месте чаще всего упускается оптимальное решение, да и сколько-нибудь вменяемое решение вообще. Ровно тот случай. Квинтеты ничего эффективнее не решают, просто они попались первыми. Сильно переусложнённые решения часто признак джуна, например, упаковывать несколько простых инструкций в одну строчку, которую невозможно сходу понять и прочесть, делать нелепые нагромождения из архитектуры, экономия на спичках и прочее. Здесь прям какой-то ярчайший пример джуна-переростка. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 00:27 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
softwarerКвинтеты ничего эффективнее не решают Ладно бы просто не решали. Они значительно усугубляют. Забудем про производительность и эффективность. Тут банальная надёжность ниже плинтуса. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 00:30 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
[quot drynny]maytonВ 2003 я с нуля делал систему управления контентом на EAV в филиале сотовой компании. Ну, тормозила, но как-то работала (года три). То был конструктор, и мне понравилось. Хотя остальное я фигачил на PL/SQL и всяких PHP в обычных базах Oracle, MySQL и MSSQL. А потом мне нужно было навести порядок в планово-экономическом отделе компании, где всё было в бумажных журналах (я был типа управляющего). Днем я методом кнута и пряника пересаживал бабушек в эксель (смотрите, сумма прописью тут сама пишется!), а потом в систему на квинтетах (чтобы набрать счет вы просто тычете в товары из списка). А вечерами опять с нуля продумывал и писал эту самую систему, а на ней немедленно делал приложение. Ядро таки было первым. а как пришла идея ядрить на квинтетах, а не на, просто как в Руби-он-Раилс на табличках? В ПЭД сколько данных было? мне тоже довелось поработать в таком подразделении .... в банке .... как представлю что все счета, проводки, обороты, лифо и фифо заквинтечены, так и удивлюсь..... впрочем, если до времени хватало бумаги - не особо наверное много. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 10:53 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
softwarerhVosttТоварищ готов говорить про всё, что угодно. ... Но не готов ответить какую задачу решают квинтеты, и почему именно они решают её эффективнее, чем классический EAV Это изначально было очевидно. В детстве я читал книжку про инженерное мышление, и там на первых страницах было сказано: большинство людей, думая, как решить задачу, хватаются за первый попавшийся способ и начинают работать, не думая об альтернативах. Именно в этом месте чаще всего упускается оптимальное решение, да и сколько-нибудь вменяемое решение вообще. Ровно тот случай. Квинтеты ничего эффективнее не решают, просто они попались первыми. а что за книга? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 10:54 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Vladimir Baskakovа что за книга? Ох. Затруднюсь точно назвать. Помню, что автор американский. Дома пороюсь, если найду в архивах - скажу точные данные, она того стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 11:13 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Vladimir Baskakovа как пришла идея ядрить на квинтетах, а не на, просто как в Руби-он-Раилс на табличках? Не было времени верстать формы и админить таблички в базе. Создал тип, добавил реквизиты и связи — уже готова форма для редактирования всего этого. Накликал отчет, написал инструкцию — пользователь пошел работать. Vladimir BaskakovВ ПЭД сколько данных было? мне тоже довелось поработать в таком подразделении .... в банке .... как представлю что все счета, проводки, обороты, лифо и фифо заквинтечены, так и удивлюсь..... впрочем, если до времени хватало бумаги - не особо наверное много. Дались вам эти квинтеты. Вот, покликайте здесь демку: bkint.ru/index.php?db=demo Там партионный учет, фифо, оборотная ведомость, отчеты рентабельности по типам и товарам. Придет ли вам в голову, что там всё на квинтетах? Спорю, что нет. Данных в ПЭО было столько: - 10-12 сотрудников - сотни договоров (с этапами, ответственными, счетами, калькуляциями) - тысячи клиентов - тысячи счетов - сотни товаров - десятки событий в день - десятки отчетов При таких объемах приложение живет больше 13 лет и бед не знает ни с надежностью, ни производительностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 11:54 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
автор- сотни договоров (с этапами, ответственными, счетами, калькуляциями) - тысячи клиентов - тысячи счетов ПЭД группы ВТБ. Немного больше клиентов, договоров, счетов, отчетности и сотрудников. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 12:26 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
softwarerVladimir Baskakovа что за книга? Ох. Затруднюсь точно назвать. Помню, что автор американский. Дома пороюсь, если найду в архивах - скажу точные данные, она того стоит. мерси ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 12:30 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
hVosttsoftwarerКвинтеты ничего эффективнее не решают Ладно бы просто не решали. Они значительно усугубляют. Забудем про производительность и эффективность. Тут банальная надёжность ниже плинтуса. Я увидел пока только 1 поинт. Если проектировать CQRS или EventStore то лента событий имеет очень простую спецификацию. 5 атомов на каждую запись + таймстамп + тип евента (команды). Создание записи или удаление или апдейт. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 15:10 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Давайте рассмотрим мои concerns. 1) Остался КМК без ответа мой вопрос касательно иерархической таблицы. В первых двух строках происходит регистрация примитивных типов. Рутовый элемент. На псевдо-языке Код: javascript 1.
Здесь мне непонятно почему древовидная структура имеет петли. Рутовый элемент имеет родителя тоже root. Немного сбивает с толку сквозная нумерация всех атрибутов. Я-бы предпочел добавить +1000 хотя-бы к sequence чтоб не "рубила" так похожесть по глазам. И вообще КМК хорошая практика разделять неоднозначные применнеия сиквенсов на дипазоны. Хотя-бы на положительные и отрицательные. К примеру примитивные типы + энтити = отрицательные. 2) И тип SHORT. Код: javascript 1.
Вобщем непонятно почему архитектор не ввел NULL как признак отсутствия родителя. Непонятно почему для SHORT парентовый элемент не петля как в случае с рут. А некий нулевой элемент. Код: 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.
3) Непонятно почему сущность Гость имеет тип SHORT (3) ? Это-ж ерунда. Сущность должна иметь тип сущность! Хотелось-бы услышать камент dryny. Понимаешь. Все эти исключения. Рулы. Касаемо 0 и 1 и NULL они очень важны. Они определяют чистоту технологии. Как например язык Lisp один раз определяет семантику списка списков с очень простыми рулами. И дальше идет просто лавинообразное наращивание смыслов. Причем гладкое и красивое. Без внутренних противоречий. С твоей технологией я признаюсь что я - буксую. Я буксую потому что эти все исключения напрягают и заставляют меня искать другие смыслы которых скорее всего нет. Просто есть какая-то оплошность или опечатка. Вобщем проясни. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 15:45 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
maytonДавайте рассмотрим мои concerns. 1) Остался КМК без ответа мой вопрос касательно иерархической таблицы. В первых двух строках происходит регистрация примитивных типов. Здесь мне непонятно почему древовидная структура имеет петли. Рутовый элемент имеет родителя тоже root. Немного сбивает с толку сквозная нумерация всех атрибутов. Я-бы предпочел добавить +1000 хотя-бы к sequence чтоб не "рубила" так похожесть по глазам. И вообще КМК хорошая практика разделять неоднозначные применнеия сиквенсов на дипазоны. Хотя-бы на положительные и отрицательные. К примеру примитивные типы + энтити = отрицательные. 2) И тип SHORT. Код: javascript 1.
Вобщем непонятно почему архитектор не ввел NULL как признак отсутствия родителя. Непонятно почему для SHORT парентовый элемент не петля как в случае с рут. А некий нулевой элемент. Как-то нужно их различать — метаданные и данные. Здесь принято так, что метаданные подчинены несуществующему элементу с ID=0, а данные подчинены корневому элементу с ID=1. Это сделано из удобства обращения ядра с квинтетными данными (например, если нужно дать доступ к данным от корня и ниже, то даем доступ к id=1) и не противоречит квинтетной модели. Вы можете сделать по-своему, и я не претендую на безупречность исполнения ядра и самой модели. Отрицательные энтити я бы сделал, но выдавал бы их по очереди: +,-,+,-,... только для того, чтобы значительно реже балансировать индексы. mayton3) Непонятно почему сущность Гость имеет тип SHORT (3) ? Это-ж ерунда. Сущность должна иметь тип сущность! Хотелось-бы услышать камент dryny. Понимаешь. Все эти исключения. Рулы. Касаемо 0 и 1 и NULL они очень важны. Они определяют чистоту технологии. Как например язык Lisp один раз определяет семантику списка списков с очень простыми рулами. И дальше идет просто лавинообразное наращивание смыслов. Причем гладкое и красивое. Без внутренних противоречий. С твоей технологией я признаюсь что я - буксую. Я буксую потому что эти все исключения напрягают и заставляют меня искать другие смыслы которых скорее всего нет. Просто есть какая-то оплошность или опечатка. Вобщем проясни. Гость имеет тип SHORT потому что это — строка (имя гостя, например). Если что-то непонятно, значит, вероятно, это не важно и ни на что не влияет. Нужно помнить одну вещь: нет никакой таблицы. Таблица СУБД используется в прототипе как временное решение, и не важно, NULL там или 0. Да, с эстетической точки зрения это важно, но это разовая задача, и вылизывание таких моментов даст 0 денег, и силы лучше потратить на продажу того, что есть, торговцу помидорами. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 18:56 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyКак-то нужно их различать — метаданные и данные. Если Ваш конструктор начнёт приближаться к промышленному решению, Вы обнаружите ещё несколько важных требований. 1. Метаданные должны лежать отдельно от данных. Просто потому, что вне детских проектов с ними работают разные люди на нескольких серверах, и им нужно обмениваться метаданными, таскать изменения, решать конфликты, и всё это - без данных. Помимо прочего, метаданные нужно ещё и класть в version control, причём в том формате, в котором человек легко глазами разберётся в изменениях, и одновременно в том формате, который без проблем подхватит сервер. 2. Сервер должен уметь работать с несколькими метамоделями и несколькими источниками данных одновременно. При этом функционал должен по максимуму их пересекать, то есть разруливать права одних и тех же пользователей на доступ ко всем источникам данных, строить выборки вперехлёст из данных разных источников и т. д. Применений множество, начиная от модульности разработки. 3. Нужна "метамодель метамодели", то есть возможность искать, вводить и редактировать метаданные, пользуясь теми возможностями сервера, которые предоставляются для поиска, ввода и редактирования данных. Как минимум, это вдвое сокращает работы по кодированию интерфейса (отдельно - админский, отдельно - пользовательский), но куда важнее то, что это является своеобразной гарантией полноценности каждого из них. 4. Решение должно иметь возможность легко, лучше всего прямо на демонстрации подхватить существующие данные заказчика. Ничто не производит на него такого впечатления как "давайте введём коннтект к базе, нажмём кнопку... о, вот видите, ваши данные, узнаёте? А вот мы их покрутим, сделаем вот такой отчёт, а теперь давайте в два клика создадим форму ввода, вот, можно сразу испробовать её в деле..." Это из личного опыта. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 19:27 |
|
|
start [/forum/topic.php?fid=32&msg=39860781&tid=1539762]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 230ms |
total: | 351ms |
0 / 0 |