So this has less to do with code itself and more about efficiency and practicality. At my previous job, we had multiple databases. One that was accessible through public means, and one that can only be accessed privately. The public database could essentially show everything the private one did and they were pretty much in sync, keeping up to date every 2 minutes or so. Their idea was that if the public database got destroyed with some type of SQL injection or something else malicious that destroyed the database, it didn't hurt production, and it could be immediately restored.
However, it was a pretty small scale operation, about only about 100 people accessing the db at one time, and if anything bad happened I'm pretty sure someone had to manually go in and restore the database to fix the problem.
My question is, is this a correct way to do things? When does this sort of tactic start to become incredibly inefficient if ever? Hypothetically if I were having tens of thousands of queries a day would this be unmaintainable?
Thanks for the insight.