Что такое идеальный "квант информации" или "минимальная единица смысла" и зачем задаваться этим вопросом? С этим связано много боли, часто даже неосознаваемой. Мы предлагаем решение, но сначала нужно разобраться для чего это нужно. Рекомендуем ознакомиться с первой статьёй в серии.
Relational tables, document oriented databases, jsonb stores... В них мы часто представляем минимальной единицей смысла модель в таблице/коллекции. Модель состоит из разной структуры колонок/полей и отражает некий реальный объект или абстрактную концепцию автора.
Такой подход создает проблемы:
Все эти проблемы решаются в ассоциативной модели данных Deep.Case.
Если вам интересна оптимизация или поиск по диапазонам в графе - здесь будет ссылка.
Deep.Case оперирует концепцией Link (связь), как минимальной единицей смысла / квантом информации.
Links (сеть связей) очень похожа на граф, однако в графе есть однозначное деление на nodes (узлы) и edges (рёбра), ссылающиеся только на них. Links не разделяет эти пространства адресов. Это позволяет связям ссылаться на связи и нести любой смысл, который в них может заложить автор моделей данных.
Структура связи состоит из обязательных уникального id
связи и type_id
связи, используемой как тип данной связи. Необязательные поля from_id
и to_id
могут быть заполнены только вместе.
Типы для создания связей легко образуются пользователем самостоятельно в рамках модели проекта, или поставляются вместе с импортируемыми моделями-пакетами.
Заполненные поля from_id
и to_id
ссылаются на другие связи. Такими связями можно описывать любые отношения.