well for one, organization: Different DBs represent differnt logical sets of data much better than tables 1,2,&3 are for system A and tables 4,5,&6 are for system B. I know that your return argument is that you can prepend some unique identifyer on the table names, but that to me seem like a hack that you would apply only if you HAD to use only 1 database. I don’t really like the idea of managing a DB with hundreds of tables all for different apps.
Another reason is for DB migrations: it is much nicer to Dump and entire DB shcema (with drop and create database scripts included) when you have your databases separated.
Yet another reason is security and security management: It is much easier to give user A rights to database A and user B rights to database B than to give user A rights to tables 1,2,& 3 and user B rights to tables 4,5,& 6. also how do you say user A can create a new table but it cant be named with the prefix given to user B’s tables.
Basically it is much easier to manage separate DB’s, My question is why do they necessarily have to be under separeate hosts?