SQL против NoSQL для данных, которые будут представлены пользователю после добавления нескольких фильтров

Я собираюсь приступить к проекту для работы, которая находится за пределами моей обычной сферы обязанностей. Как администратор базы данных SQL, я изначально хотел подойти к проекту с использованием базы данных SQL, но чем больше я узнаю о NoSQL, тем больше я верю, что это может быть лучшим вариантом. Я надеялся, что смогу использовать этот вопрос для описания проекта на высоком уровне, чтобы получить отзывы о плюсах и минусах использования каждого варианта.

Проект относительно прост. У меня есть набор объектов, которые имеют различные атрибуты. Некоторые из этих атрибутов являются общими для всех объектов, тогда как некоторые являются общими только для подмножества объектов. Передо мной стоит задача создания службы, в которой пользователь выбирает серию фильтров, основанных на атрибутах объекта, а затем возвращается список объектов, который соответствует всем ^ из фильтров. Когда пользователь выбирает фильтр, он или она может фильтровать общий атрибут или атрибут подмножества, но он абстрагируется на внешнем интерфейсе.

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

После просмотра этого разговора Мартина Фолулера (http://www.youtube.com/watch?v=qI_g07C_Q5I), может показаться, что база данных NoSQL в стиле документа должна соответствовать моим потребностям, но, учитывая, что у меня нет опыта работы с этим подходом, также возможно, что я упускаю что-то очевидное.

Некоторая дополнительная информация - в базе данных первоначально будет около 5000 объектов, каждый из которых содержит от 10 до 50 атрибутов, но количество объектов определенно будет расти со временем, а количество атрибутов может увеличиваться в зависимости от отзывов пользователей. Кроме того, я надеюсь, что у меня будет возможность быстро вносить изменения в продукт, поскольку я получаю отзывы пользователей, поэтому гибкость очень важна.

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

Ответы на вопрос(3)

Ваш ответ на вопрос