Poiché si tratta di sicurezza .stackexchange.com, mi concentrerò sulla domanda di sicurezza. (Sono d'accordo con altri poster / commentatori: questo in genere non è un buon progetto per la manutenibilità a lungo termine, probabilmente non è grandioso per le prestazioni, ma è impossibile sapere senza sapere esattamente come gli utenti - incluso te, l'amministratore - stanno interrogandoli. )
Da un punto di vista della sicurezza, la separazione dei dati utente in diverse tabelle in MySQL avrà un vantaggio solo se si configurano anche account utente individuali per ciascun utente in MySQL e quindi si impostano esplicitamente le loro autorizzazioni in modo che possano accedere solo a tali tabelle. A quel punto, le autorizzazioni diventano un enorme casino per tenere traccia, validare e correggere, ma attenuerebbe il rischio di un attacco SQL injection .
Sarebbe concettualmente più facile dare a ciascun utente il proprio schema (o "database" in linguaggio MySQL) e dare loro i privilegi per il loro intero schema. Ciò rende i privilegi molto più facili da controllare e attenua ancora il rischio di SQL injection.
Quest'ultimo concetto non è del tutto insano: molti server sono configurati in questo modo per poter eseguire diverse applicazioni con backup di database sullo stesso server senza consentire loro di accedere ai reciproci dati. Se nel tuo caso ha senso, dipende, in larga misura, da quanti utenti hai.
Non sto approvando il tuo design; solo sottolineando i pro / contro.