Currently I am working on a project of a management software. This software is currently in built with an old technology (Codeigniter-PHP). My job is to convert this software to latest technology (Express-NodeJS). But the database will remain the same (MySQL).
Whatever, currently this software has 400+ users (The number is going to increase to 3000+ soon). Each user is given the different codebase along with different database (Just the copy of the main code and the database schema for everyone). Which means software and database schema is different for every one. Each database has 212 tables.
As my job is to upgrade this software I will make sure that everyone will use the software from one code base.
Here comes my question: As there are already 400+ databases (each database has 212 tables), should I use all those database from a single codebase (application) or should I use single database for all the customers?
I was thinking about sharding, but sharding is done at table level, my problem is at database level.