Abbiamo creato un servizio (basato su PHP) per un cliente e ora stiamo cercando di offrirlo ad altri client come servizio ospitato. Per questo esempio, pensalo come un servizio di forum ospitato, dove un cliente si iscrive sul nostro sito, e gli viene dato un sottodominio o può usare il proprio dominio, e il codice preleva il dominio, lo confronta con un utente "principale" tabella, quindi carica il contenuto secondo necessità.
Sto cercando di trovare il modo migliore di gestire più client.
Al momento posso solo pensare a due opzioni che potrebbero funzionare:
-
Opzione 1 : dispone di 1 set di tabelle di database, ma su ogni tabella è presente una colonna denominata "siteid": ciò significa che ogni query deve controllare il sitoid. Ciò funzionerebbe efficacemente con solo 1 codebase e 1 database.
-
Opzione 2 - Dispone di 1 database "master" con tutti gli elementi principali, come i dettagli del cliente e il loro dominio. Quindi, quando il sistema controlla il dominio, estrae i dettagli del database dei client (username / password / dbname) da una tabella e carica un secondo database. Il problema qui è la sicurezza dei dettagli del server mysql, tuttavia ha il vantaggio che stanno eseguendo il proprio database invece di condividerne uno.
Quale opzione farei meglio a prendere qui, e perché? Idealmente, voglio che sia abbastanza facile convertire lo script "standalone" nello script "multi-dominio" dato che siamo in una scadenza ristretta.