Если несколько пользователей будут использовать одну и ту же базу данных, я рекомендую использовать сервер базы данных (Sql Server / MongoDB) вместо файловой базы данных (SqlLite / LiteDb).Даже если это не отдельный физический сервер, использование технологии, разработанной для одновременного доступа нескольких клиентов, обеспечит вам гораздо лучшую масштабируемость.Файловые базы данных обычно разрабатываются для однопользовательских сценариев и быстро становятся узким местом, поскольку только один поток может получить доступ к файлу за один раз.
Что касается использования Sql или NoSql - я рекомендую разработать кодВы пишете, чтобы минимизировать затраты на изменение своего мнения.Ваш текущий список требований, кажется, не сильно выигрывает от выбора одного над другим, и, по моему личному опыту, эта ситуация обычно приводит к одному из двух результатов:
- , в котором используется проектограниченные возможности и выбор технологии не имели значения
- проект получил широкое распространение, использовался способами, которые мы не могли предвидеть, и теперь мы спешим догнать
В любом случае время, потраченное на предварительные попытки решить, не приносит особой пользы.Это, как говорится, все еще стоит исследовать заранее (как у вас), так как предварительные знания являются отличным инструментом для принятия правильных решений в условиях ограниченного времени.
Наконец, вы ничего не упомянули о безопасности- если в вашей организации есть эксперты по безопасности, я настоятельно рекомендую тесно сотрудничать с ними при разработке системы.Произвольные загрузки файлов могут использоваться в качестве вектора атаки, поэтому проверка содержимого и назначения загрузки очень важна.