Per CouchDB, consiglio vivamente di leggere questo articolo sulle relazioni tra entità.
Una cosa che vorrei notare in CouchDB è fare attenzione a tentare di "normalizzare" un modello di dati non relazionale. L'archiviazione basata su documenti offre una grande flessibilità e raramente è l'idea migliore astrarre tutto in tutti i "tipi di documenti" a cui puoi pensare. Molte volte, è meglio lasciare gran parte dei tuoi dati all'interno dello stesso documento, a meno che tu non abbia casi chiari in cui esistono entità separate.
Un caso d'uso comune delle relazioni molti-a-molti è l'implementazione della codifica. Ci sono articoli sui diversi metodi che puoi utilizzare per ottenere ciò in CouchDB. Potrebbe essere applicabile alle tue esigenze, forse no, ma probabilmente vale la pena leggerlo.