У нас есть приложение, которое работает с финансовыми данными без схемы. Точнее, данные без транса - это информация о заказе, поля которой настраиваются продавцом. Последовательность и долговечность важны.
Из-за того, насколько динамичны наши данные, очень сложно составить отчет.Каждая запись может незначительно отличаться или быть совершенно другой. Если мы продолжим использовать реляционную базу данных, похоже, что наш единственный вариант - сериализовать «документ» как большой двоичный объект. Отчетность должна выполняться отдельно, возможно, путем копирования данных в общую структуру, определяемую пользовательскими отчетами (каждый «отчет» будет иметь настраиваемую таблицу).
Другой вариант - это база данных NoSQL, ориентированная на документы, такая как MongoDB. После некоторых исследований выяснилось, что большинство людей не доверяют базе данных NoSQL финансовые данные, потому что она полагается на BASE , а не на ACID .
Кажется, я оказался посреди двух совершенно разных вариантов использования. Мои данные очень хорошо вписываются в базу данных, ориентированную на документы (MongoDB), но мне нужна надежность базы данных ACID. В то же время необходимы сложные отчеты, определяемые пользователем.
Итак, у меня есть три варианта:
Итак, какой из трех вариантов является моим лучшим вариантом (наибольшая гибкость и надежность)? Есть ли другие варианты, которые я не рассматривал, зная, что не могу изменить динамичность данных? Кто-нибудь использует MongoDB для создания отчетов в производственной среде?
(Для нашей RDMS мы используем MySQL. Думаю о переходе на MariaDB.Выбранный язык программирования - PHP. Подумайте об использовании Sphinx для ПОЛНОГО ТЕКСТА, например, о поиске чьего-либо имени.)