Mantenimento dei dati tra due database in sincronizzazione

3

Diciamo che ho un'applicazione per forum in esecuzione e inizio a creare un'applicazione web separata con un framework web Python. Entrambe le applicazioni utilizzano i propri database MySQL, che contengono le rispettive tabelle degli account utente. Quale sarebbe l'approccio migliore per mantenere sincronizzati gli utenti tra i database? Voglio farlo in modo che possa accedere con le stesse informazioni su entrambe le applicazioni.

    
posta Bryan 19.02.2017 - 07:34
fonte

1 risposta

1

La risposta diretta alla tua domanda potrebbe non farti molto bene, ma si riduce a utilizzare i trigger se i tuoi database si trovano sullo stesso server, o utilizzando la logica di creazione dell'account per attivare da remoto la creazione anche sull'altra applicazione. Tuttavia, vorrei sottolineare che la sincronizzazione dei dati può portare a perdite di dati più veritiere a meno che non siano presenti alcuni meccanismi di robustezza (sincronizzazione pianificata, tentativi ripetuti di attivazione della creazione, ecc.).

Quasi sempre un approccio migliore sarebbe mantenere un'unica fonte di verità. Tuttavia, questo non evita la complessità.

Ecco alcuni approcci a cui potresti rivolgerti:

Ipotesi

Data la formulazione della tua domanda, assumerò che tutti gli account utente debbano essere replicati su entrambe le applicazioni. Per esempio. non ci sono account utente specifici per app.

Metodo 1: stesso server di database, database separato

Un approccio diretto sarebbe la creazione di un terzo database che contiene dati condivisi per entrambe le applicazioni, in questo caso gli account utente. Puoi fare riferimento al database dalle tue solite query, poiché è tutto sullo stesso server. (Se supponiamo che tu stia utilizzando Django, nel tuo modello User dovrai specificare il database. Per fare ciò, dovrai sostituire il modello utente per il sistema di autenticazione predefinito, che è più di una seccatura di quanto vorrei ammettere)

Approccio n. 2: servizio di autenticazione separato

È possibile mantenere un'applicazione separata (un servizio, per la precisione) che verrebbe interrogato su una connessione protetta per provare le attestazioni di autenticazione. Ciò introdurrebbe complessità significative, dato che dovresti autenticare manualmente le tue sessioni, il che è alquanto noioso in quanto potresti essere abituato ad essere automatizzato dai famosi framework Python.

Un'opzione più utile potrebbe riguardare servizi di autenticazione di terze parti come link . Puoi trovare la documentazione di Python qui

Dichiarazione di non responsabilità: non sono affiliata né esperta con i servizi di Auth0, sono solo indicati come esempio.

    
risposta data 19.02.2017 - 11:40
fonte

Leggi altre domande sui tag