powered by simpleCommunicator - 2.0.46     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как назвать эту структуру и подход, основанные на EAV?
25 сообщений из 454, страница 18 из 19
Как назвать эту структуру и подход, основанные на EAV?
    #39860369
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siemarglmayton, softwarer,

хоть я и любитель оценить потребление ресурсов, но

во-первых мерять нужно с умом, как и весь бенчмаркинг впрочем. И 100Мб может оказаться и хорошим и плохим результатом, в зависимости от дальнейшей функции от нагрузки

во-вторых мне больше не понравилось по ссылке Тем не менее, при 20-25 запросах в секунду (пиковая нагрузка при работе 20 пользователей), сервер укладывается в требования по производительности — 1 секунда на отклик. В целом ресурсы его недогружены, хотя это самый бюджетный вариант: 1 ядро 2.4 ГГц при 1 ГБ оперативной памяти.25RPS это какой то трэш вне зависимости от задачи

собственно, может там задача на расчет 100 биткойнов, но сомневаюсь и не вникал

Там к заметке приложен тест-скрипт, в котором перечисленны запросы к разным диапазонам дат, сущностям, условиям и прочему. То есть на каждый запрос делается:
1) проверка токена авторизации и прав пользователя
2) выбирается и разбирается нужный шаблон рабочего места
3) собираются метаданные запрошенных объектов
4) делается выборка из нескольких таблиц (фильтр, агрегаты, сортировка)
5) шаблон заполняется данными и готовая страница возвращается пользователю

Пункт 4 занимает основное время, остальное — миллисекунды.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860379
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonДавайте я немножко сделаю шаг назад. Я уже спрашивал Архитектора про API.
На основании индексной информации я сделал набросок к квинтетному интерфейсу.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
trait QuntetBasicApi {

  def quintetById(id : Int) : Quintet = ???

  def quintetChainStartWith(id : Int) : LazyList[Quintet] = ???

  def quintetByDatatypeValue(datatype : Int, value : Option[Int]) : LazyList[Quintet] = ???

  def quintetByParentDatatype(parent : Int, dataType : Option[Int]) : LazyList[Quintet] = ???

}



Я включил базовый набор поисковых атрибутов с учотом индексов. Они расположены таким образом
чтобы обеспечивать быстрый доступ к множествам квинтетов.

Все прочие проекции которые можно придумать по идее должны покрываться этим 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 отчетаДанные выполненного запроса (отчета), параметры, команда на выполнение изменений
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860497
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynny, вы продаете описание интерфейса вот в таком виде?

Дружище - это несеръезно! Здесь нет типа возвращаемого параметра. Тоесть я щас должен
глядя на это просто догадаться что мне вернут и будет ли это коллекция или атом?

Почему у вас нет описания хотя-бы на SOAP/GraphQL или в крайнем случае на Swagger?
Вы проделали тонну работ с 2006 года но у вас отсутствует элементарное! Почему?
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860545
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytondrynny, вы продаете описание интерфейса вот в таком виде?

Дружище - это несеръезно! Здесь нет типа возвращаемого параметра. Тоесть я щас должен
глядя на это просто догадаться что мне вернут и будет ли это коллекция или атом?

Почему у вас нет описания хотя-бы на SOAP/GraphQL или в крайнем случае на Swagger?
Вы проделали тонну работ с 2006 года но у вас отсутствует элементарное! Почему?

Я не пилю ядро с 2006 года, а делал перерывы (например, с 2008 по 2014 развития ядра не было).
API вообще появилось в конце прошлого года и ещё не устоялось.

В таблицу не смог скопировать ячейки описания из экселя, а файлы тут никто не скачивает (прилагаю) и по ссылкам не ходит, где всё есть.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860551
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Эксцель файл более плотный хотя все таки не достаточный. В вашей конторе... эээ "Интеграл" (?)
есть техно-писатель который верстает документацию? Вообще кто у вас есть? Есть вы. Сколько еще примерно
людей участвуют в разработке?
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860559
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonСпасибо. Эксцель файл более плотный хотя все таки не достаточный. В вашей конторе... эээ "Интеграл" (?)
есть техно-писатель который верстает документацию? Вообще кто у вас есть? Есть вы. Сколько еще примерно
людей участвуют в разработке?
Ядро писал я один, но мне помогал друг, как специалист по безопасности, искал дыры и давал советы. Он же иногда советовал как реализовать некоторые моменты.
Еще я обращаюсь к различным дизайнерам при необходимости.
Все остальные материалы, на которые здесь даны ссылки, созданы мной.

Прикладные разработчики про квинтеты ничего вообще не знают. Им это не нужно. API у меня попросили, я сделал.

Если вам интересно, то можете присоединиться, кстати.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860565
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

не могу после заявленных утверждений пройти мимо, несколько цитат с сайта этой скромной системы :)


Выберите свой формат, способ и продолжительность обучения из 5 вариантов

Бесплатно. Все необходимые материалы предоставляются.

3-дневный курс. Стоимость: 8900 руб. (в группе), 28900 руб. (индивидуально).

5-дневный курс. Стоимость: 12900 руб.

8, 16, 24 или 40-часовой курс. Стоимость: 1000 руб./час.

Ответы на вопросы, помощь, программирование. Любая длительность. 1500 руб./час.




— Вы научитесь программировать простые веб-приложения: проектировать базу данных, организовывать бизнес-логику, создавать запросы SQL (как в MySQL, Posgre, ...) и экранные формы, используя HTML, CSS, Javascript.

(Posgre -- чё? )

— Работе в Интеграле вас можем научить только мы . Все вложения окупятся с первого же заказа, на который с нашей платформой вы потратите минимум времени, а результат будет достаточно эффектным, чтобы продавать потом ваши услуги.

— Даже опытные программисты часто сталкиваются с тем, что не могут понятно объяснить то, как решается задача на практике, заказчику. Интеграл максимально упрощает процесс как разработки, так и общения с клиентами. Дополнительный инструментарий в вашем портфеле — плюс к вашей деятельности и имиджу.

(интеграл вообще всё делает сам и даже заказчиков находит)

и.. любой сайт лохотронов-разводил

Доходы на практике

— 90% наших слушателей начинают зарабатывать уже на практических занятиях. Наши коучи вам в помощь

Прибыльно и проверено

— Проверенные стратегии сводят на минимум потери и увеличивают процент успешных сделок до 80%
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860580
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynnyЯ не пилю ядро с 2006 года, а делал перерывы (например, с 2008 по 2014 развития ядра не было)
А с 2006 по 2008 и с 2014 по 2019-й оно таки развивалось? Мне просто любопытно, сколько Вам понадобилось времени на то, чтобы написать и отладить 2300 строк кода.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860583
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttРаботе в Интеграле вас можем научить только мы
Как там было у классиков... "Любая деятельность, учить которой выгоднее, нежели заниматься ей самому - лохотрон"?
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860586
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот в 90х задумал написать комьютерную сетевую игру на сокетах. Танчики.
И кирпичики. До сих пор - в статусе тех задания. Я уже 20 раз технологию
поменял. Сначала это был MS-DOS в VGA mode. Потом Windows 98/OpenGL...
Вобщем ... когда буду на пенсии...

Короче некоторые проекты нельзя закончить. Их можно только прекратить.

Но с нашим топиком мне кажется что рост системы шел не от идеи квинтетов
а от улучшений уже работающей системы документооборота. Ядро или приложение?
Яйцо или курица?
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860618
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerdrynnyЯ не пилю ядро с 2006 года, а делал перерывы (например, с 2008 по 2014 развития ядра не было)
А с 2006 по 2008 и с 2014 по 2019-й оно таки развивалось? Мне просто любопытно, сколько Вам понадобилось времени на то, чтобы написать и отладить 2300 строк кода.

Товарищ готов говорить про всё, что угодно. Про количество строк, по какие-то 100 мб в вакууме.

Но не готов ответить какую задачу решают квинтеты, и почему именно они решают её эффективнее, чем классический EAV -- раз уж выбран был именно такая основа архитектуры.

Забиваю гвозди пассатижами. Выяснилось, что остальные инструменты не нужны, вредны и избыточны. А я уже 10 собачих будок так построил, заказчики довольны! Сколько сэкономили. Потрачено не больше 100 гвоздей на будку. А вас сколько гвоздей уходит, а? Ну-ка приведите свои графики.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860622
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonЯ вот в 90х задумал написать комьютерную сетевую игру на сокетах. Танчики.
И кирпичики. До сих пор - в статусе тех задания. Я уже 20 раз технологию
поменял. Сначала это был MS-DOS в VGA mode. Потом Windows 98/OpenGL...
Вобщем ... когда буду на пенсии...

Короче некоторые проекты нельзя закончить. Их можно только прекратить.

Но с нашим топиком мне кажется что рост системы шел не от идеи квинтетов
а от улучшений уже работающей системы документооборота. Ядро или приложение?
Яйцо или курица?

Ну, такое тоже было (1994 год, ZX Spectrum, ходилка-стрелялка на ассемблере), но тут не тот случай.

В 2003 я с нуля делал систему управления контентом на EAV в филиале сотовой компании. Ну, тормозила, но как-то работала (года три). То был конструктор, и мне понравилось. Хотя остальное я фигачил на PL/SQL и всяких PHP в обычных базах Oracle, MySQL и MSSQL.
А потом мне нужно было навести порядок в планово-экономическом отделе компании, где всё было в бумажных журналах (я был типа управляющего). Днем я методом кнута и пряника пересаживал бабушек в эксель (смотрите, сумма прописью тут сама пишется!), а потом в систему на квинтетах (чтобы набрать счет вы просто тычете в товары из списка). А вечерами опять с нуля продумывал и писал эту самую систему, а на ней немедленно делал приложение.

Ядро таки было первым.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860628
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttТоварищ готов говорить про всё, что угодно. ... Но не готов ответить какую задачу решают квинтеты, и почему именно они решают её эффективнее, чем классический EAV
Это изначально было очевидно. В детстве я читал книжку про инженерное мышление, и там на первых страницах было сказано: большинство людей, думая, как решить задачу, хватаются за первый попавшийся способ и начинают работать, не думая об альтернативах. Именно в этом месте чаще всего упускается оптимальное решение, да и сколько-нибудь вменяемое решение вообще. Ровно тот случай. Квинтеты ничего эффективнее не решают, просто они попались первыми.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860637
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЭто изначально было очевидно. В детстве я читал книжку про инженерное мышление, и там на первых страницах было сказано: большинство людей, думая, как решить задачу, хватаются за первый попавшийся способ и начинают работать, не думая об альтернативах. Именно в этом месте чаще всего упускается оптимальное решение, да и сколько-нибудь вменяемое решение вообще. Ровно тот случай. Квинтеты ничего эффективнее не решают, просто они попались первыми.

Сильно переусложнённые решения часто признак джуна, например, упаковывать несколько простых инструкций в одну строчку, которую невозможно сходу понять и прочесть, делать нелепые нагромождения из архитектуры, экономия на спичках и прочее.

Здесь прям какой-то ярчайший пример джуна-переростка.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860639
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerКвинтеты ничего эффективнее не решают

Ладно бы просто не решали. Они значительно усугубляют. Забудем про производительность и эффективность. Тут банальная надёжность ниже плинтуса.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860770
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot drynny]maytonВ 2003 я с нуля делал систему управления контентом на EAV в филиале сотовой компании. Ну, тормозила, но как-то работала (года три). То был конструктор, и мне понравилось. Хотя остальное я фигачил на PL/SQL и всяких PHP в обычных базах Oracle, MySQL и MSSQL.
А потом мне нужно было навести порядок в планово-экономическом отделе компании, где всё было в бумажных журналах (я был типа управляющего). Днем я методом кнута и пряника пересаживал бабушек в эксель (смотрите, сумма прописью тут сама пишется!), а потом в систему на квинтетах (чтобы набрать счет вы просто тычете в товары из списка). А вечерами опять с нуля продумывал и писал эту самую систему, а на ней немедленно делал приложение.

Ядро таки было первым.

а как пришла идея ядрить на квинтетах, а не на, просто как в Руби-он-Раилс на табличках?

В ПЭД сколько данных было? мне тоже довелось поработать в таком подразделении .... в банке .... как представлю что все счета, проводки, обороты, лифо и фифо заквинтечены, так и удивлюсь..... впрочем, если до времени хватало бумаги - не особо наверное много.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860771
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerhVosttТоварищ готов говорить про всё, что угодно. ... Но не готов ответить какую задачу решают квинтеты, и почему именно они решают её эффективнее, чем классический EAV
Это изначально было очевидно. В детстве я читал книжку про инженерное мышление, и там на первых страницах было сказано: большинство людей, думая, как решить задачу, хватаются за первый попавшийся способ и начинают работать, не думая об альтернативах. Именно в этом месте чаще всего упускается оптимальное решение, да и сколько-нибудь вменяемое решение вообще. Ровно тот случай. Квинтеты ничего эффективнее не решают, просто они попались первыми.

а что за книга?
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860781
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Baskakovа что за книга?
Ох. Затруднюсь точно назвать. Помню, что автор американский. Дома пороюсь, если найду в архивах - скажу точные данные, она того стоит.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860802
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir Baskakovа как пришла идея ядрить на квинтетах, а не на, просто как в Руби-он-Раилс на табличках?
Не было времени верстать формы и админить таблички в базе.
Создал тип, добавил реквизиты и связи — уже готова форма для редактирования всего этого.
Накликал отчет, написал инструкцию — пользователь пошел работать.

Vladimir BaskakovВ ПЭД сколько данных было? мне тоже довелось поработать в таком подразделении .... в банке .... как представлю что все счета, проводки, обороты, лифо и фифо заквинтечены, так и удивлюсь..... впрочем, если до времени хватало бумаги - не особо наверное много.
Дались вам эти квинтеты. Вот, покликайте здесь демку:
bkint.ru/index.php?db=demo

Там партионный учет, фифо, оборотная ведомость, отчеты рентабельности по типам и товарам.
Придет ли вам в голову, что там всё на квинтетах? Спорю, что нет.

Данных в ПЭО было столько:
- 10-12 сотрудников
- сотни договоров (с этапами, ответственными, счетами, калькуляциями)
- тысячи клиентов
- тысячи счетов
- сотни товаров
- десятки событий в день
- десятки отчетов

При таких объемах приложение живет больше 13 лет и бед не знает ни с надежностью, ни производительностью.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860825
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор- сотни договоров (с этапами, ответственными, счетами, калькуляциями)
- тысячи клиентов
- тысячи счетов

ПЭД группы ВТБ. Немного больше клиентов, договоров, счетов, отчетности и сотрудников.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860828
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerVladimir Baskakovа что за книга?
Ох. Затруднюсь точно назвать. Помню, что автор американский. Дома пороюсь, если найду в архивах - скажу точные данные, она того стоит.
мерси
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39861014
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttsoftwarerКвинтеты ничего эффективнее не решают

Ладно бы просто не решали. Они значительно усугубляют. Забудем про производительность и эффективность. Тут банальная надёжность ниже плинтуса.
Я увидел пока только 1 поинт. Если проектировать CQRS или EventStore то лента событий имеет очень
простую спецификацию. 5 атомов на каждую запись + таймстамп + тип евента (команды).
Создание записи или удаление или апдейт.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39861034
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте рассмотрим мои concerns.

1) Остался КМК без ответа мой вопрос касательно иерархической таблицы.
В первых двух строках происходит регистрация примитивных типов.

Рутовый элемент. На псевдо-языке
Код: javascript
1.
registerPrimitiveType(id = 1, datatype = 1, parent = 1, ord = 0, value = 'root');



Здесь мне непонятно почему древовидная структура имеет петли. Рутовый элемент имеет родителя тоже root.
Немного сбивает с толку сквозная нумерация всех атрибутов. Я-бы предпочел добавить +1000 хотя-бы к sequence
чтоб не "рубила" так похожесть по глазам. И вообще КМК хорошая практика разделять неоднозначные применнеия
сиквенсов на дипазоны. Хотя-бы на положительные и отрицательные. К примеру примитивные типы + энтити = отрицательные.


2) И тип SHORT.
Код: javascript
1.
registerPrimitiveType(id = 3, datatype = 3, parent = 0, ord = 0, value = 'short');



Вобщем непонятно почему архитектор не ввел 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.
CREATE TABLE quintet(
    id       INT    PRIMARY KEY,
    datatype INT    NOT NULL,
    parent   BIGINT NOT NULL,
    ord      INT    NOT NULL,
    value    TEXT
);

INSERT INTO quintet VALUES (1,1,1,0,'ROOT');
INSERT INTO quintet VALUES (3,3,0,0,'SHORT');
INSERT INTO quintet VALUES (4,4,0,0,'DATETIME');
INSERT INTO quintet VALUES (8,8,0,0,'CHARS');
INSERT INTO quintet VALUES (9,9,0,0,'DATE');
INSERT INTO quintet VALUES (13,13,0,0,'NUMBER');
INSERT INTO quintet VALUES (14,14,0,0,'SIGNED');

INSERT INTO quintet VALUES (348,3,0,0,'Гость');
INSERT INTO quintet VALUES (349,3,0,0,'Номер');
INSERT INTO quintet VALUES (350,13,0,0,'Бронирование');
INSERT INTO quintet VALUES (351,348,0,0,null);
INSERT INTO quintet VALUES (352,349,0,0,null);
INSERT INTO quintet VALUES (353,351,350,1,null);
INSERT INTO quintet VALUES (355,352,350,2,null);
INSERT INTO quintet VALUES (356,4,0,0,'Дата бронирования');
INSERT INTO quintet VALUES (357,9,0,0,'Заезд');
INSERT INTO quintet VALUES (358,9,0,0,'Выезд');
INSERT INTO quintet VALUES (359,356,350,3,null);
INSERT INTO quintet VALUES (360,357,350,4,null);
INSERT INTO quintet VALUES (361,358,350,5,null);


3) Непонятно почему сущность Гость имеет тип SHORT (3) ? Это-ж ерунда. Сущность должна иметь тип сущность!

Хотелось-бы услышать камент dryny.

Понимаешь. Все эти исключения. Рулы. Касаемо 0 и 1 и NULL они очень важны. Они определяют
чистоту технологии. Как например язык Lisp один раз определяет семантику списка списков
с очень простыми рулами. И дальше идет просто лавинообразное наращивание смыслов. Причем
гладкое и красивое. Без внутренних противоречий.

С твоей технологией я признаюсь что я - буксую. Я буксую потому что эти все исключения
напрягают и заставляют меня искать другие смыслы которых скорее всего нет. Просто есть
какая-то оплошность или опечатка.

Вобщем проясни.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39861148
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonДавайте рассмотрим мои concerns.

1) Остался КМК без ответа мой вопрос касательно иерархической таблицы.
В первых двух строках происходит регистрация примитивных типов.

Здесь мне непонятно почему древовидная структура имеет петли. Рутовый элемент имеет родителя тоже root.
Немного сбивает с толку сквозная нумерация всех атрибутов. Я-бы предпочел добавить +1000 хотя-бы к sequence
чтоб не "рубила" так похожесть по глазам. И вообще КМК хорошая практика разделять неоднозначные применнеия
сиквенсов на дипазоны. Хотя-бы на положительные и отрицательные. К примеру примитивные типы + энтити = отрицательные.

2) И тип SHORT.
Код: javascript
1.
registerPrimitiveType(id = 3, datatype = 3, parent = 0, ord = 0, value = 'short');



Вобщем непонятно почему архитектор не ввел NULL как признак отсутствия родителя.

Непонятно почему для SHORT парентовый элемент не петля как в случае с рут. А некий нулевой элемент.
Как-то нужно их различать — метаданные и данные.
Здесь принято так, что метаданные подчинены несуществующему элементу с ID=0, а данные подчинены корневому элементу с ID=1.
Это сделано из удобства обращения ядра с квинтетными данными (например, если нужно дать доступ к данным от корня и ниже, то даем доступ к id=1) и не противоречит квинтетной модели.
Вы можете сделать по-своему, и я не претендую на безупречность исполнения ядра и самой модели.

Отрицательные энтити я бы сделал, но выдавал бы их по очереди: +,-,+,-,...
только для того, чтобы значительно реже балансировать индексы.

mayton3) Непонятно почему сущность Гость имеет тип SHORT (3) ? Это-ж ерунда. Сущность должна иметь тип сущность!

Хотелось-бы услышать камент dryny.

Понимаешь. Все эти исключения. Рулы. Касаемо 0 и 1 и NULL они очень важны. Они определяют
чистоту технологии. Как например язык Lisp один раз определяет семантику списка списков
с очень простыми рулами. И дальше идет просто лавинообразное наращивание смыслов. Причем
гладкое и красивое. Без внутренних противоречий.

С твоей технологией я признаюсь что я - буксую. Я буксую потому что эти все исключения
напрягают и заставляют меня искать другие смыслы которых скорее всего нет. Просто есть
какая-то оплошность или опечатка.

Вобщем проясни.
Гость имеет тип SHORT потому что это — строка (имя гостя, например).

Если что-то непонятно, значит, вероятно, это не важно и ни на что не влияет.
Нужно помнить одну вещь: нет никакой таблицы. Таблица СУБД используется в прототипе как временное решение, и не важно, NULL там или 0. Да, с эстетической точки зрения это важно, но это разовая задача, и вылизывание таких моментов даст 0 денег, и силы лучше потратить на продажу того, что есть, торговцу помидорами.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39861155
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynnyКак-то нужно их различать — метаданные и данные.
Если Ваш конструктор начнёт приближаться к промышленному решению, Вы обнаружите ещё несколько важных требований.

1. Метаданные должны лежать отдельно от данных. Просто потому, что вне детских проектов с ними работают разные люди на нескольких серверах, и им нужно обмениваться метаданными, таскать изменения, решать конфликты, и всё это - без данных. Помимо прочего, метаданные нужно ещё и класть в version control, причём в том формате, в котором человек легко глазами разберётся в изменениях, и одновременно в том формате, который без проблем подхватит сервер.

2. Сервер должен уметь работать с несколькими метамоделями и несколькими источниками данных одновременно. При этом функционал должен по максимуму их пересекать, то есть разруливать права одних и тех же пользователей на доступ ко всем источникам данных, строить выборки вперехлёст из данных разных источников и т. д. Применений множество, начиная от модульности разработки.

3. Нужна "метамодель метамодели", то есть возможность искать, вводить и редактировать метаданные, пользуясь теми возможностями сервера, которые предоставляются для поиска, ввода и редактирования данных. Как минимум, это вдвое сокращает работы по кодированию интерфейса (отдельно - админский, отдельно - пользовательский), но куда важнее то, что это является своеобразной гарантией полноценности каждого из них.

4. Решение должно иметь возможность легко, лучше всего прямо на демонстрации подхватить существующие данные заказчика. Ничто не производит на него такого впечатления как "давайте введём коннтект к базе, нажмём кнопку... о, вот видите, ваши данные, узнаёте? А вот мы их покрутим, сделаем вот такой отчёт, а теперь давайте в два клика создадим форму ввода, вот, можно сразу испробовать её в деле..."

Это из личного опыта.
...
Рейтинг: 0 / 0
25 сообщений из 454, страница 18 из 19
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как назвать эту структуру и подход, основанные на EAV?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]