Come posso modellare questo scenario in un database grafico?

3

Sto sviluppando un'applicazione in cui gli utenti possono taggare le risorse ed è anche importante sapere chi ha taggato la risorsa con un tag specifico.

Un database grafico sembra essere adatto a questo e al resto dell'applicazione, ma avendo usato solo gli RDBMS tradizionali ho difficoltà a capire come modellare questo scenario.

I un database relazionale Avrei una tabella di join "PersonResourceTag" per identificare quale utente ha applicato un particolare tag, ma con un database grafico non riesco a capire come associare la persona a un tag per una risorsa specifica. Avrei bisogno di qualche tipo di vertice "PersonTaggedResource" o c'è un modo migliore? ... o semplicemente non è adatto per un database grafico?

    
posta Phil 14.03.2015 - 07:06
fonte

1 risposta

5

I database del grafico sono in generale, un superset di ciò che un RDBMS può fare. Le implementazioni sono completamente diverse e devi dimenticare tutti gli idiomi RDBMS quando ti avvicini usando un Database Graph. Le relazioni non sono modellate con una tabella di join , sono modellate direttamente nel nodo con una * relazione ". Si chiama indice free adjacency , che è l'esatto opposto di una tabella di join in un RDBMS.

Person -> Tags[Tag] -> Resource

Dove Tag è un Property e la sintassi precedente è molto vicina alla sintassi GraphQL effettiva per interrogare il grafico con.

Puoi ottenere una copia gratuita di Database di grafici di O'reilly , è un'ottima lettura.

    
risposta data 29.08.2015 - 09:50
fonte

Leggi altre domande sui tag