642 / 356 / 131
Регистрация: 01.02.2020
Сообщений: 1,061
1
Другое

Совмещение реляционных и noSQL бд

12.07.2023, 18:32. Показов 729. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хочу сделать в postgresql две таблички users и actions, соответственно id one-to-many user_id. Скажем в табличке actions будет хранится тип действия и id для большей информации об этом действии. Вот как раз это назовем метаданными и будем хранить в mongodb документах metadata_actions, где id one-to-one metadata_id. Так можно добавить к документах информацию о том, когда они были добавлены и скажем удалять спустя пол года. И соответственно, если в actions содержится metadata_id, для которого нет соответствия, можно выдавать ошибку, мол информация об операции не найдена. Так, даже если что-то и случится с id ничего страшного не произойдет, поскольку информация хранимая в mongo изначально была временной.

Возникает вопрос, насколько вообще правильно совмещать в одном проекте реляционные базы данных и нереляционные? Возможно стоит все в реляционных хранить? Чисто в монге не получится, поскольку у пользователей есть поле amount и операции дебета и кредита между ними, так понадобятся многодокументные транзакции, что нежелательно.
Миниатюры
Совмещение реляционных и noSQL бд  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.07.2023, 18:32
Ответы с готовыми решениями:

Подмножества в реляционных БД
Как создать таблицы в базе, если одна или несколько сущностей являются подмножествами другой...

Книги по проектированию реляционных бд
Уважаемые, посоветуйте пожалуйста хорошие книги по проектированию реляционных БД, а то в магазинах...

Автоматизированное проектирование реляционных баз
Господа! получил на руки курсовик с заданием: 'Научиться синтезировать схему реляционной базы,...

Проектирование реляционных баз данных
Специализированная научная библиотека Рассмотрим специализированную библиотеку, которая...

Проблема с выборкой SELECT реляционных таблиц
Добрый день! в MS SQL спроектирована реляционная база данных, состоящая из нескольких таблиц....

3
Matthias Ronald Gerard
148 / 208 / 25
Регистрация: 11.08.2022
Сообщений: 2,056
13.07.2023, 11:15 2
Цитата Сообщение от Coffeini Посмотреть сообщение
Возникает вопрос, насколько вообще правильно совмещать в одном проекте реляционные базы данных и нереляционные?
Если нужно хранить в каталоге большие объекты, думаю, такой подход оправдан.
1
Эксперт функциональных языков программированияЭксперт Java
4483 / 2718 / 485
Регистрация: 28.04.2012
Сообщений: 8,585
14.07.2023, 07:25 3
Цитата Сообщение от Coffeini Посмотреть сообщение
Вот как раз это назовем метаданными и будем хранить в mongodb документах metadata_actions, где id one-to-one metadata_id. Так можно добавить к документах информацию о том, когда они были добавлены и скажем удалять спустя пол года. И соответственно, если в actions содержится metadata_id, для которого нет соответствия, можно выдавать ошибку, мол информация об операции не найдена. Так, даже если что-то и случится с id ничего страшного не произойдет, поскольку информация хранимая в mongo изначально была временной.
А зачем? В чём проблема хранить body и committed в таблице actions? В чём проблема создать третью таблицу в Postgres? Как ты собираешься обеспечить транзакционность добавления записи в actions и metadata_actions?

P. S. Правильное название: actions_metadata.
P. P. S. У тебя в actions хранятся метаданные, а в metadata_actions -- данные. Названия таблиц перепутаны.
1
642 / 356 / 131
Регистрация: 01.02.2020
Сообщений: 1,061
14.07.2023, 13:48  [ТС] 4
Цитата Сообщение от korvin_ Посмотреть сообщение
транзакционность добавления записи в actions и metadata_actions?
Я не знаю нужна ли она вообще, но наверное ради консистентности id можно 2х фазовый коммит применить.
Цитата Сообщение от korvin_ Посмотреть сообщение
А зачем?
В большей степени ради практики, в меньшей ради того, чтобы обеспечить удаление данных. Насколько я знаю, в реляционных действительное удаление нежелательно.
Цитата Сообщение от korvin_ Посмотреть сообщение
Названия таблиц перепутаны.
Возможно потом вместо типа я сделаю несколько табличек для каждого действия и уже в них конкретные данные. Там например действие снятие со счета какого-то пользователя и сумма. А уже в метаданных gps, id устройства; в общем какие-то данные без которых в общем-то можно обойтись, но хотелось бы сохранить. Еще коммит, наверное надо перенести.
0
14.07.2023, 13:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.07.2023, 13:48
Помогаю со студенческими работами здесь

Как правильно сделать с точки зрения реляционных БД
В базе данных нужно создать поле тип оплаты, которое может принимать только два значения: "нал" или...

Nosql и c++
Доброго времени суток. Работаю с nosql, как достать из бд 2 значения(Ключ - значение) я знаю. ...

NOSQL Документация
Есть какая-нибудь документация по NOSQL?

nosql in-memory db
Всем привет! Я конечно понимаю есть гугл и все такое, но все равно интересно задать этот вопрос....

NoSQL в PostgreSQL
Добрый день, проконсультируйте плииииииз. Слышал что Постгресс поддерживает форматы данных...

Nosql Redis
Доброго времени суток. На одном из проектов возникла задача, добавления товару различных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru