2010-04-04 4 views

risposta

15

Invece di utilizzare una tabella unirsi come si farebbe con un RDBMS, si avrebbe uno ColumnFamily contenente una riga per ogni X e un elenco di Ys ad esso associati, poi una CF contenente una riga per ogni Y e un elenco di ciascuna X associata ad essa.

Se risulta che non ti interessa davvero interrogare una di quelle direzioni, tieni solo la CF che ti interessa.

1

Cassandra di design è il database dei valori chiave, quindi per ottenere M: M ci sono due modi per farlo.

  1. De-normalizzare i dati in modo che ogni nave di relazione debba duplicare i dati.

    ie. X-> Y (valore) e X-> z (valore) e a-> y (valore)

    y dovrebbe essere salvato per xe un

    Questo è come dovrebbe essere fatto in quanto è dare resistenza della base dati

  2. Salva riferimento per chiave relazionale come valore.

    X-> Y (chiave) e X-> z (Key) e a-> y (Key)

    Quindi, se avete bisogno di x con il valore di y dovrebbe essere due operazioni, ottenere x che sarà darti il ​​valore di y. Quindi prenditi da solo in un'operazione separata.

Cassandra non è RDBMS in modo da non avvolgerà mente intorno modo tradizionale di farlo facendo cadere i valori e definire rapporti.