MongoDB в качестве основной базы данных? - PullRequest
6 голосов
/ 18 сентября 2010

Я много читал в MongoDB.

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

Я знаю, что это снижает надежность в ACID, но в качестве решения у меня будет 1 ведущий и 2 ведомых в разных местах.

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

UPDATE:

Скажем так.

Мне действительно нужно хранилище документов, а не традиционные базы данных, чтобы иметь возможность создавать гибкое приложение. Но достаточно ли надежен MongoDB для хранения конфиденциальной информации о клиенте, если у меня есть несколько копий базы данных и главный-подчиненный? Потому что, насколько мне известно, одним из основных недостатков является то, что это ставит под угрозу D в ACID. Поэтому я решаю это с несколькими базами данных.

Теперь нет серьезных проблем, таких как потеря данных?

И кто-то сказал мне, что с MongoDB клиент может выставлять счет дважды. Может ли кто-нибудь это просветить?

Ответы [ 3 ]

7 голосов
/ 19 сентября 2010

Да, MongoDB может работать как единственное хранилище данных приложения. Используйте репликацию и убедитесь, что вы знаете о безопасных записях и w .

И кто-то сказал мне, что с MongoDB клиент может получать счета дважды. Может ли кто-нибудь это просветить?

Полагаю, тот, кто сказал вам, говорил о возможной последовательности. Некоторые базы данных NoSQL в конечном итоге становятся непротиворечивыми, что означает, что у вас могут быть конфликтующие записи. Однако MongoDB не является строго согласованным (как и реляционная база данных).

5 голосов
/ 19 ноября 2010

Ваше приложение гибкое или нет, не имеет абсолютно никакого отношения к тому, используете ли вы «nosql», «document db» или надлежащую RDBMS.Никто не будет использовать ваше приложение в любом случае.

Если вам нужна гибкость при кодировании, вы должны исследовать фреймворки, такие как ActiveRecord для Ruby, которые могут сделать взаимодействие с БД намного более простым, универсальным и мощным.На этом уровне вы можете получить гораздо больше, чем просто изменить БД, и даже стать независимым от БД, то есть вы можете изменить БД без изменения любого кода.Действительно, я обнаружил, что ActiveRecord многократно повышает мою производительность, избавляя меня от утомительного и подверженного ошибкам «кода, смешанного с SQL».

Действительно, если вам кажется, что вам нужна база данных без схемы для критических данных,вы делаете что-то не так.Вы ставите собственное удобство над критическими потребностями проектов, или в невежестве думаете, что у вас не возникнет проблем позже.Рано или поздно, отсутствие последовательности укусит вашу задницу, тяжело!

Я чувствую, что вы неохотно относитесь к СУБД, потому что вам не очень комфортно со всеми жаргонами, синтаксисом и принципами звука CS.

* 1010Поверьте, если вы собираетесь создать приложение любой ценности, вы в сто раз лучше изучаете SQL, ACID и хорошие принципы работы с базами данных.Просто прочитайте основы и накопите свои знания там, где вы сейчас находитесь.Это то же самое для каждого из нас, это требует времени, но вы учитесь делать вещи с самого начала.

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

Зачем вообще использовать компьютеры, если выХочешь больше работать, можешь просто вернуться к работе.Дизайн будет быстрым, а реализация может быть очень быстрой.Готово.За исключением того, что это, конечно, не будет правильным.

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

Не поддавайтесь обману.Вы задаете вопрос о MongoDB здесь, но включаете, что вам действительно нужно его возможностей.С 25-летним опытом работы на компьютере я просто не покупаю его.Если вы мыслите креативно, СУБД можно заставить делать то, что вы хотите, или использовать среду, чтобы уберечь вас от ошибок и потерянного времени.

Создание свойств ACID на MongoDB кажется мне больше работыи, по опыту, звучит как упражнение в тщетности, а не использует то, что уже разработано для таких целей.

3 голосов
/ 18 сентября 2010

Возможно ли это? Конечно. Почему бы и нет? При желании можно сохранить все как XML в текстовых файлах.

Это лучшая идея? Это зависит от того, что вы пытаетесь сделать, от остальной части архитектуры вашей системы, от масштаба, на который рассчитан ваш сайт и т. Д.

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