@Fly3110
web developer

Имеет ли данная схема организации БД право на существование?

Всем привет!

Хочу понять имеет ли право на существование такая схема и какие в ней явные и неявные минусы.
В SQL базе данных хранятся только id (возможно еще числовые параметры, такие как сумма/количество/итд)
Все остальное хранится в NOSQL базе.

То есть (как пример), есть "товар". в SQL базе для этого товара - только колонка ID
В NOSQL базе хранятся все поля этого товара (естественно могут быть разные у разных товаров).
SQL база используется для хранения и выборок со сложными связями.

P.S. То есть, если проще, все свойства объекта хранятся в NOSQL, а все действия с ним - в SQL

Имеет ли такая схема право на существование и, если да, то как наиболее органично ее использовать с ActiveRecord?

Заранее спасибо
  • Вопрос задан
  • 356 просмотров
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Право существовать имеет но.... а смысл?

Вообще самая распространенная схема - хранить все и в реляционной базе и по изменению данных запускать агрегацию в nosql. В таком случае у нас есть надежное хранилище, которое хранит все данные, и nosql база хранящая агрегации данных с целью ускорения выборки за счет денормализации. В этом случае в nosql будет много дублирования но нас это не парит так как у нас есть реляционная база, из которой всегда можно хоть с нуля агрегации запилить.

Соответственно у нас появляется разделение - все операции на запись работают исключительно с реляционкой, все операции на чтение - с nosql (ну или часть с nosql и часть с реляционкой, тут смотря что вы хотите ускорять и есть ли смысл в организации агрегации данных).
Ответ написан
@dmitryKovalskiy
программист средней руки
Любая схема имеет право на жизнь, пока не начнет безбожно тормозить. Как уже успели заметить в комментариях - Зачем? Вы фактически вместо одного запроса - делаете 2 и в разные источники. Что вам мешает создать таблицу products_description и в ней хранить 3 поля - product_id , locale, и данные в xml или json формате? На вход хранимке 2 параметра - id и локаль , на выход все необходимые данные для постройки формы. Причем если на уровне базы данных целостность внешнего ключа проверять не составляет труда, то как вы собираетесь контролировать данные в двух разных источниках?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы