На самом деле, описанная вами проблема прекрасно решается с помощью реляционных БД, но вашей команде это займет гораздо больше времени.Я думаю, что база данных документов - лучший выбор для вас.RavenDB - это отличная база данных документов, объединяющая в себе преимущества как реляционной базы данных, так и базы данных документов.Он полностью совместим с ACID, у него замечательный поставщик Linq и он довольно быстрый, особенно последняя сборка.
Так что мое предложение будет таким: вы никогда не узнаете точно, пока не попробуете.Единственная проблема, с которой я столкнулся при использовании ravendb, заключалась в индексации.В документации отсутствуют некоторые важные замечания, и я надеюсь, что Ayende скоро решит эту проблему, в противном случае, просто сделайте это.
Кстати, вы также можете попробовать MongoDB.Он не совместим с ACID, у него также нет поставщика Linq, и написание запросов сложнее, чем в RavenDB, как вы уже догадались, но написано на C ++, имеет атомарные операции ввода-вывода и очень очень быстрое.