Я работал в одной организации, с похожими задачами, только данных было миллионы. БД - MSSQL, довольно справлялась с работой + хорошо мониторить запросы, проводить тесты, и видеть где что нагружает, и какой запрос не справляется. И почти все данные лежали в одной таблице где было более 150 колонок.
Так же были и связующие, где колонок было не мало, и приходилось связывать, иначе была полная вакханалия. Все велось к тому чтобы ограничится кол-вом запросов в базу, и в принципе все работает довольно неплохо.