Мне нужна небольшая помощь или руководство по поводу того, какую базу данных использовать для проекта. Если вы можете поднять какие-либо вопросы или отметить недостатки, ответить на какие-либо вопросы или прорекламировать любой из типов баз данных для цели, которую я собираюсь описать, я буду очень признателен.
У нас есть программное обеспечение, которое отслеживает формы.
У нас есть пользователи, которые могут иметь МНОГО различных свойств, буквально
сотни настроек, и я не поклонник таблиц MySQL такой ширины. I
очень нравится Mongo для этого.
У нас есть различные типы форм, каждая из которых может иметь совершенно разные
поля. Сейчас у нас есть список форм с общими данными, затем
присоединяемся к соответствующей таблице для получения дополнительных данных. Я бы хотел, чтобы все
эти поля в одном отдельном документе с Mongo, и я мог бы легко
добавлять поля, не беспокоясь об этом.
У нас есть гонорары, примечания, история на каждой форме. Мне нравится, что в MySQL они
находятся в другой таблице, и я могу получить историю по форме или по пользователю -
то же самое с примечаниями.
Наша политика - хранить ВСЕ данные, даже удаленные или предварительно отредактированные.
данные... навсегда. Стоит ли мне
беспокоиться о превышении лимита размера? Вероятно, речь идет о 100 Гб к концу 2013 года
Сколько запросов Mongo на страницу приведет к загрузке? 20? 100? Будет ли
это изменится, если у меня будет SSD в сервере? (Прямо сейчас у нас около
60 MySQL-запросов на страницу. Это можно улучшить.)
Плохая ли это идея для моего первого проекта Mongo быть несколько крупным проектом?
программного обеспечения? Могу ли я научиться этому по ходу дела?
Мне нравится нечувствительность имен столбцов MySQL к регистру для быстрых и
грязных вещей.
В MySQL я разбиваю данные по разным таблицам. Можно ли в Mongo объединять данные, которые можно разделить? Пример: имя пользователя, email, телефон, лицензия1 => [num,isValid], лицензия2 => [num, isValid], уведомления => [notification1...notification50000], хэш пароля, соль, setting1, setting2...setting1000, permission1, permission2...permission1000
Конечно, я буду использовать вложенный стиль для организации, но лучше ли хранить все это под "пользователем" или разбить на настройки, лицензии, разрешения? Второй пример: formName, address, notes => [note1 => [user,note,date], note2 => [user,note,date]]
Есть ли проблемы с HYBRID установкой, где данные пользователя находятся в Mongo, а данные формы в MySQL?
Нам нужно запускать много отчетов, есть ли ограничения на это в Mongo? Например, возникнут ли у меня проблемы с поиском каждой формы за последние 40 дней с оплатой более $10, с суммированием оплаты в каждой строке, отсортированной по возрасту пользователя, который ее заполнил?
Избыточность данных - В облаке Amazon MySQL имеет МАССОВУЮ избыточность данных. Есть ли сервис, позволяющий сравниться с Mongo? Сложно ли это настроить самостоятельно?
Поддерживается ли MongoDB какими-либо "облачными" провайдерами? AWS делает многое для MySQL, но похоже, что для Mongo я буду предоставлен сам себе
Просто несколько вещей из головы - я очень признателен всем, кто что-либо скажет.