Сообщество RSS DEV

Обновление "денормализованных" агрегатов с "дубликатами": MongoDB против PostgreSQL

В разработке, ориентированной на базы данных, дублирование данных обычно избегается из-за потенциальных проблем с обновлениями. Domain-Driven Design (DDD) допускает дублирование данных, когда агрегаты владеют своими данными, сосредотачиваясь на контролируемых обновлениях в пределах границ агрегатов. MongoDB поддерживает этот подход DDD с эффективными обновлениями массивов и полей документов, сводя к минимуму накладные расходы. Приведенный пример использует MongoDB для переименования игрока в нескольких документах с помощью одной операции `updateMany()`. Это более эффективно для модели агрегатов с интенсивным чтением. Напротив, реализация JSONB в PostgreSQL часто требует перезаписи целых документов для аналогичных обновлений, что потенциально делает нормализацию более привлекательной. Основная проблема заключается не в самом дублировании, а в том, кто владеет данными и как оптимизируются обновления. Пример показывает, как MongoDB эффективно обновляет имя игрока в десятках тысяч документов. Однако приведенный пример PostgreSQL показывает полную перезапись данных. Таким образом, денормализация DDD оптимизируется за счет детализированных обновлений MongoDB.
favicon
dev.to
Updating "denormalized" aggregates with "duplicates": MongoDB vs. PostgreSQL
Create attached notes ...