Sto lavorando a un'applicazione web LAMP piuttosto standard. Il server stesso ha un database MySQL standard e l'applicazione è scritta in PHP. Il kicker è, usiamo anche database SQL Server con questa applicazione.
L'impostazione corrente dei dati è questa:
- MySQL memorizza le informazioni dell'account utente (Username, password, privilegi, ecc.) e un "identificatore di connessione".
- L'identificatore di connessione si collega a un'altra tabella che memorizza le credenziali di connessione per un database del server SQL.
- Quando un utente effettua l'accesso, viene stabilita una connessione a un database SQL Server remoto (questi sono ospitati indipendentemente dall'applicazione Web e non nel mio controllo).
- Usando questa connessione, l'applicazione web elabora ed emette i dati (solo letture, nessuna scrittura).
L'applicazione si è evoluta notevolmente e, mentre l'organizzazione e le pratiche sono migliorate, il design è ancora piuttosto disordinato e confuso. Faccio fatica ad implementare qualsiasi tipo di framework o ORM perché la maggior parte sono progettati con un database in mente.
Ho unito insieme un framework che funziona molto bene per i report (dove è necessaria solo la connessione SQL Server) ma non va bene con le cose come l'interazione con l'account (dove il server SQL viene utilizzato per la convalida dei dati che entrano in MySQL).
L'installazione non sembra che cambierà quindi mi chiedevo se ci fosse qualche consiglio sulla progettazione e sul mantenimento di un'applicazione web con due diversi database back-end allo stesso tempo.
Da un lato, memorizzare le credenziali per i database SQL Server remoti nel nostro database MySQL mi rende nervoso. Posso solo crittografare le password in quanto ne ho bisogno per le connessioni e, così com'è attualmente, tutti gli account utilizzati sono account admin con privilegi completi. Non qualcosa che vuoi uscire soprattutto quando questi database sono aperti per le connessioni Internet. Quindi qualsiasi consiglio sarebbe bello.