Sto sviluppando una sorta di gioco di ruolo basato sul web. Quindi per il mio dominio player ho trovato questo.
player oggetto avrà molti parametri come class , level , name e così via. Come oggetto piuttosto semplice, lo memorizzo nel database relazionale come PostgreSQL ad esempio. Ho un'entità RPlayer per quello.
Inoltre, volevo introdurre per player la possibilità di stabilire contatti con altri giocatori, alcune funzionalità di base dei social network. Per questo motivo ho deciso di utilizzare un database grafico come Neo4J . Ho un'entità GPlayer per quello. È un oggetto più semplice con alcuni campi univoci come id o name .
Come oggetto è diventato in qualche modo distribuito - tengo i dati per esso in diversi depositi - Ho aggiunto la mappatura di id in RDBMS a id in graphDB. Alla fine sembra così. (Non so come aggiungere campi in draw.io alla tabella, quindi qui ho solo tre campi e manca name ).
Nonhocollegatoplayersemappingtabellainquantounodeicampièesternoquindinonavevomotivodiconnettererelational_uuidaidinplayerstabella.
Quandohobisognodirecuperaretutto-uniscotuttiidatidaGPlayer-larappresentazionedelgiocatoreèilgrafico-eRPlayer-larappresentazionedelgiocatoreèlatabella-inCompletePlayeroggettochecontienetuttiicampidientrambiglioggetti.
Quando aggiungo un nuovo giocatore
1. I create record in app.players table and get r_ID
2. I create node in graphDB and get g_ID
3. I create record in util.mapping for r_ID and g_ID
Anche i 3 passaggi che sto pianificando di fare nell'ambito di global transaction .
Questo approccio è ok? Dovrei in qualche modo memorizzare il dominio nel singolo database e non diffonderlo tra diversi archivi?
