Size: a a a

Software Design/Architecture/Zen

2021 June 07

R

Roman in Software Design/Architecture/Zen
Пойду плакать в подушку
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Добрый день!

Хочу сделать древовидную структуру, используя Nested Sets. Подскажите, как разнести знание о полях между доменом и инфраструктурой?

По идее знания о номерах узлов (lgt, rgt) и глубине (depth) — это в домене не нужно и об этом будет знать только инфраструктура, верно?
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
В сущности будет только поле parentId, а в БД будут parentId, lgt, rgt и depth + корневой узел.
источник

i

igor kek in Software Design/Architecture/Zen
огребете по полной программе от этих nested sets. По возможности лучше не использовать
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Почему?
источник

i

igor kek in Software Design/Architecture/Zen
Сложности с контроллем целостности. Но на практике не подскажу. Т.к. у меня до прода это решение не дошло.
источник

ST

Serguei Tarassov in Software Design/Architecture/Zen
Проектирование баз данных: иерархические структуры. Деревья в SQL (глава из книжки)
https://www.arbinada.com/ru/node/25
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Вопрос же не в реализации на уровне БД, а как в коде разделить между доменом и инфраструктурой.
источник

ST

Serguei Tarassov in Software Design/Architecture/Zen
там про логический уровень, нарисуйте вместо таблиц классы - ничего не изменится, те же проблемы, те же преимущества
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Так с точки зрения предметной области - не важно как оно там хранится.
источник

ST

Serguei Tarassov in Software Design/Architecture/Zen
Так с точки зрения ПрОбл неважно, какие классы в домене
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
так речь не о классах
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
речь о данных
источник

ST

Serguei Tarassov in Software Design/Architecture/Zen
а данные чем моделируются у вас?
источник

RL

Romka Los in Software Design/Architecture/Zen
Я бы на вашем месте забыл что вы это что-то собираетесь хранить в БД и начал описывать домен. Тогда и понятно будет как разнести. Скорей всего у вас логика с деталями сама по себе в маппинг уедет.
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Я так и делаю... У меня выходит, что на уровне домена есть только parentId и всё.
источник

i

igor kek in Software Design/Architecture/Zen
За это прям спасибо. Посмотрел, ничего не понял. Нашел наши графики. Посмотрел за год, три месяца и все время. Посмотрел презентации на Ютубе как пользоваться графиками. И как то все очень радужно по ним. Задача стали делать намного больше, кривая движется вниз, скорость доставки фич растет. Багов меньше становится. Ощущение такое, что делать ничего не надо и все хорошо
источник

ST

Serguei Tarassov in Software Design/Architecture/Zen
это и называется "матрица смежности"
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
При чём тут матрица смежности?
источник

ST

Serguei Tarassov in Software Design/Architecture/Zen
Забавный уровень обсуждения: классы ни при чем, таблицы тоже, только какие-то "данные", непонятно чем моделируемые, но уже есть ParentId
источник