MongoDB или MySQL или оба в приложении Rails - PullRequest
2 голосов
/ 08 февраля 2011

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

Итак, допустим, я хотел создать систему бронирования номеров типа "постель и завтрак" (B & B). Таким образом, в обычной RBDMS у меня был бы класс владельца, у которого есть много местоположений. Каждое местоположение будет иметь функции, а также календарь доступности. Кроме того, каждое место будет иметь свои заказы и т. Д.

Мне нравится идея с MongoDB, что у вас может быть местоположение с его собственными функциями, бронированиями и т. Д. Без собственной записи, поскольку они действительно принадлежат только этому местоположению. Но где я думаю, что это ломается, например, у каждого бронирования будут счета, и эти записи также принадлежат людям, которые заказали, и так далее. И будет ли кошмаром создать админку для такого приложения.

Что бы вы выбрали для такого типа приложений и какую базу данных вы бы использовали?

С нетерпением ждем вашего совета.

Ответы [ 3 ]

2 голосов
/ 30 сентября 2011

Я написал несколько приложений, которые смешивают и сопоставляют реляционные и нереляционные базы данных (MySQL, Mongo, PostGRES и Riak). На самом деле в Rails это не особенно сложно, и я даже написал библиотеку, которая создает отношения между различными типами баз данных (так что ваши модели Ripple могут «принадлежать_пользователю», где таблица пользователей находится в MySQL).

Вы всегда должны позволять своим потребностям определять решения. Не тратьте время на то, чтобы загонять своих пользователей в Mongo, если вам удобнее хранить их в реляционной БД или пытаться перенести отчетную информацию, которая не может быть нормализована, в таблицу MySQL. Анализ сущностей, которые вы храните, и взаимосвязей между ними будет стимулировать ваши реализации.

1 голос
/ 16 марта 2011

Я бы не рекомендовал использовать MySQL и MongoDB в одном приложении - гораздо больше проблем, чем оно того стоит.MongoDB способен обрабатывать все, что может предложить простое Rails-приложение, как вы упомянули, и я думаю, что оно гораздо более гибкое, чем MySQL, для такого рода приложений.

Просто знайте, что MongoID и MongoMapper не являются точными портамиActiveRecord - у них есть сходства, но они принципиально отличаются, из-за фундаментально баз данных, стоящих за ними.Вы можете создать приложение, которое будет иметь отношения, такие как MySQL, поэтому блог с комментариями или ваше приложение для бронирования не будет проблемой.Например, используя MongoID, вы захотите использовать методы 'reference_many, referenced_in' вместо 'embeds_many, embedded_in' (http://mongoid.org/docs/associations/).

0 голосов
/ 08 февраля 2011

Похоже, отличное приложение для MongoDB.Похоже, решение в основном зависит от вас и от того, какая база данных вам наиболее удобна.

Вы не должны бояться смешивать и сопоставлять MongoDB и MySQL в своем приложении.При построении ваших моделей вы можете использовать ActiveRecord :: Base, когда вы хотите, чтобы объект хранился в MySQL, и MongoMapper или MongoID, когда вы хотите, чтобы объект хранился в MongoDB.Будьте осторожны в том, как вы управляете отношениями между двумя моделями.

Полный отказ от ответственности: я работаю на 10gen.Но я бы начал с использования только MongoDB, и я думаю, вы обнаружите, что работать с ним так приятно, что вы быстро забудете о MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...