Ho un problema che non sembra avere una correzione immediata e mi confonde.
La mia applicazione principale memorizza i dati in mysql:
- Utenti
- Siti web (metadati)
- Pagine (metadati)
Le pagine stesse sono oggetti JSON complessi che descrivono pagine Web e che non possono essere facilmente tradotte in una struttura relazionale mysql.
Il json viene trasformato in HTML da un server Node, questo non è un problema.
Quindi il datastore noSQL memorizza solo:
- Pagine come documenti json
Ho letto che è piuttosto normale memorizzare il documento _id dall'istanza mongodb in mysql come riferimento.
Tuttavia, allo stesso tempo non c'è modo di mantenere i due negozi in modo affidabile in sincronia. Non sembra essere un modo per creare una transazione che possa coprire entrambe le tecnologie contemporaneamente (io uso Java / Jersey + Hibernate / Morphia).
Ad esempio. Creo una risorsa in MongoDb, ma la creazione in MySQL fallisce. Ora ho un documento in MongoDb ma non in MySQL. Lo stesso vale per la cancellazione, ovviamente.
Non riesco a uscire da questo dilemma.
I documenti della pagina memorizzati in Mongodb verranno utilizzati in seguito per la sincronizzazione con la ricerca elastica. In ogni caso, i file JSON che descrivono le pagine saranno troppo complessi per essere archiviati in MySQL, quindi voglio un archivio dati noSQL per questo.