Size: a a a

Software Design/Architecture/Zen

2020 November 23

MT

Mike Turchenkov in Software Design/Architecture/Zen
Например гипотетический набор из  SQL запроса с прилепленными к нему DDL-ками таблиц, которые он использует. Чем это плохо (я уверен что плохо) на языке архитектуры, а не интуиции?
источник

ЕР

Евгений Ромашкан... in Software Design/Architecture/Zen
Ну DDL это же синтаксис для описания модели данных, она описывается один раз, а далее можно делать выборки многократные по этой модели
источник

ЕР

Евгений Ромашкан... in Software Design/Architecture/Zen
Расположением всего добра в памяти/на диске занимается уже СУБД, алгоритм выборки данных по полученным в декларативном формате критериям продумывает SQL-оптимизатор потому что у него это получается лучше или быстрее чем у погромистов
источник

ЕР

Евгений Ромашкан... in Software Design/Architecture/Zen
Вообще, есть документо-ориентированные БД которые могут работать и без заранее определённой схемы
источник

MT

Mike Turchenkov in Software Design/Architecture/Zen
Евгений Ромашкан
Ну DDL это же синтаксис для описания модели данных, она описывается один раз, а далее можно делать выборки многократные по этой модели
В точку! Как раз речь о ситуации когда эти DDL-ки имеют право дрейфовать и эволюционировать, существуюя чуть ли не своя каждый запрос. Что-то вроде хранимых представлений, путешествующих в одной сцепке с использующим их кодом запроса.
источник

ЕР

Евгений Ромашкан... in Software Design/Architecture/Zen
Mike Turchenkov
В точку! Как раз речь о ситуации когда эти DDL-ки имеют право дрейфовать и эволюционировать, существуюя чуть ли не своя каждый запрос. Что-то вроде хранимых представлений, путешествующих в одной сцепке с использующим их кодом запроса.
Ну, структуру БД не перестраивают под каждый запрос. Это долго и дорого
источник

ЕР

Евгений Ромашкан... in Software Design/Architecture/Zen
И не нужно, т.к. обычно запросы всё-таки подстраивают под структуру
источник

MT

Mike Turchenkov in Software Design/Architecture/Zen
Евгений Ромашкан
Ну, структуру БД не перестраивают под каждый запрос. Это долго и дорого
Да, это хороший аргумент именно как архитектора баз данных. А я чувствую в этом подхоже еще и нарушение какого-то архитектурного принципа (необходимость слабой связи, "смешение слоев", типа не должен запрос что-то знать про детали воссоздания своего окружения, так как это не его слой)
источник

ЕР

Евгений Ромашкан... in Software Design/Architecture/Zen
Mike Turchenkov
Да, это хороший аргумент именно как архитектора баз данных. А я чувствую в этом подхоже еще и нарушение какого-то архитектурного принципа (необходимость слабой связи, "смешение слоев", типа не должен запрос что-то знать про детали воссоздания своего окружения, так как это не его слой)
Ну да, чем меньше деталей можно учитывать в запросе, тем проще)
источник

MT

Mike Turchenkov in Software Design/Architecture/Zen
Но какого именно принципа - пока не сформулировал
источник

MT

Mike Turchenkov in Software Design/Architecture/Zen
Вот-вот. Уменьшение вероятности ошибки Независимость компонент.
источник

ЕР

Евгений Ромашкан... in Software Design/Architecture/Zen
Ну можно считать что DRY, т.к. инфа получается будет дублироваться в запросах
Та и SRP туда же
источник

MT

Mike Turchenkov in Software Design/Architecture/Zen
Поразительно то, что как раз такая гипотетическая пара (запрос+метаданные для всех таблиц запроса) будет более устойчива к попыткам запустить ее на базе с другой структурой метаданных
источник

MT

Mike Turchenkov in Software Design/Architecture/Zen
Чем просто запрос
источник

MT

Mike Turchenkov in Software Design/Architecture/Zen
Евгений Ромашкан
Ну можно считать что DRY, т.к. инфа получается будет дублироваться в запросах
Та и SRP туда же
Согласен. Если схема базы данных устаканена, то дублироваться. А вот если сама система существует для того, чтобы устаканить такую схему, нащупывая ее форму под каждый запрос (создавая копию таблиц и хранимых представлений), то получается что вроде бы хранение метаинфы и инфы это даже хорошо и не нарушает никаких архитектурных догм, я правильно понимаю?
источник

ЕР

Евгений Ромашкан... in Software Design/Architecture/Zen
Mike Turchenkov
Согласен. Если схема базы данных устаканена, то дублироваться. А вот если сама система существует для того, чтобы устаканить такую схему, нащупывая ее форму под каждый запрос (создавая копию таблиц и хранимых представлений), то получается что вроде бы хранение метаинфы и инфы это даже хорошо и не нарушает никаких архитектурных догм, я правильно понимаю?
Если схема задаётся клиентом то она уже устаканена
источник

ЕР

Евгений Ромашкан... in Software Design/Architecture/Zen
А если не устаканена и это бд с динамической схемой, то этой схемой занимается уже база а не клиенты
источник

MT

Mike Turchenkov in Software Design/Architecture/Zen
О, круть, большое спасибо! Кажется в этом и разгадка.
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
json-поля, таблицы в памяти. зачем что-то извращенское придумывать?
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
временные таблицы
источник