För CouchDB rekommenderar jag starkt att du läser denna artikel om Entitetsrelationer.
En sak jag skulle notera i CouchDB är att vara försiktig med att försöka "normalisera" en icke-relationell datamodell. Den dokumentbaserade lagringen ger dig stor flexibilitet, och det är sällan den bästa idén att abstrahera allt till så många "dokumenttyper" som du kan tänka dig. Många gånger är det bäst att lämna mycket av dina data i samma dokument om du inte har tydliga fall där separata enheter finns.
Ett vanligt användningsfall för många-till-många-relationer är att implementera taggning. Det finns artiklar om olika metoder du kan använda för att åstadkomma detta i CouchDB. Det kan gälla dina krav, kanske inte, men det är förmodligen värt att läsa.