For CouchDB vil jeg varmt anbefale at læse denne artikel om enhedsforhold.
En ting, jeg vil bemærke i CouchDB, er at være forsigtig med at forsøge at "normalisere" en ikke-relationel datamodel. Den dokumentbaserede opbevaring giver dig en stor fleksibilitet, og det er sjældent den bedste idé at abstrahere alt til så mange "dokumenttyper", som du kan tænke dig. Mange gange er det bedst at efterlade meget af dine data i det samme dokument, medmindre du har klare tilfælde, hvor der findes separate enheder.
Et almindeligt eksempel på mange-til-mange-relationer er implementering af tagging. Der er artikler om forskellige metoder, du kan bruge til at opnå dette i CouchDB. Det gælder muligvis for dine krav, måske ikke, men det er nok værd at læse.