Как мне использовать rdbms и mongodb в приложении rails? - PullRequest
2 голосов
/ 04 января 2011

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

Однако отсутствие транзакций требует возврата к rdbms. RDBMS будет использоваться исключительно для записи финансовых операций.

Возможно ли это в рельсах, и кто-нибудь делал это?

У меня ограниченный опыт работы с рельсами в целом, но я представляю себе защищенную часть, смонтированную как двигатель, и URL-адреса, ограниченные по secure.myapp.com или myapp.com/secure/, и пользователь будет перенаправлен на ssl, пока стойка занимает заботиться о таких вещах, как общие сеансы.

Будет ли это работать? Или кто-нибудь нашел лучший способ реализовать это?

Ответы [ 2 ]

1 голос
/ 04 января 2011

Можно смешивать mongoDB и традиционную RDMS, но вам может потребоваться выполнить дополнительное кодирование с вашей стороны, если вы хотите, чтобы объекты ActiveRecord взаимодействовали с объектами MongoDB, поскольку ORM отличаются.Имейте в виду, что хотя MongoDB и не поддерживает транзакции между несколькими документами, она поддерживает «транзакционные» атомарные обновления - это означает, что если все данные, которые вы обновляете, содержатся в одном документе, вам не о чем беспокоитьсяо сделках.MongoDB также поддерживает безопасные обновления, что позволяет вам проверять, что данные были записаны на разные серверы реплик и сохранены на диск.

Что касается общих сеансов между HTTPS и HTTP - вам не о чем беспокоитьсяоколо.Вы определите свое хранилище сеансов как MongoDB, MySQL, Memcached или, по моей рекомендации, Cookies.Пока вы определяете свой домен как «.myapp.com», файлы cookie будут совместно использоваться всеми поддоменами вашего приложения независимо от протокола.

0 голосов
/ 04 января 2011

Хотя я не могу прокомментировать непосредственно вопрос о рельсах, как и в случае с ответом первого автора, MongoDB поддерживает обновления транзакций. Вероятно, проще реализовать всю систему в Mongo или RDBMS.

Реальный вопрос в том, какова мотивация использования монго здесь? Что вы надеетесь получить от модели базы данных документов? Вы просто хотите копировать объекты RoR прямо в монго?

Просто предложение (абстрактно), но вы могли бы просто строго определить свои объекты заранее и представить это определение в вашей RDBMS. Это, вероятно, сэкономит вам много времени, если у вас нет четкой мотивации для использования Mongo. Mongo - это потрясающая технология, но она лучше всего подходит для сортировки данных и каталогизации данных, а не для представления строгих структур данных (не обязательно, что это невозможно сделать, обязательно, но с базой данных документов у вас гораздо больше гибкости с содержанием каждого объект в вашей БД).

Удачи!

...