Many To Many Has Utility

by Curt

In Hierarchies Are Overrated, I noted how people don’t tend to think of things hierarchically.  For example, I had difficulty choosing only one category for my home escrow statement.

People tend to link concepts to other concepts in many directions.  I might see someone as both a friend and a co-worker.  Butter isn’t just a cooking ingredient; it’s also a bread spread.  A recent photograph of mine could be labeled both “holiday” and “family”.

These relationships are all impossible to represent in a strict hierarchy, and this is because – in the example of my friend/co-worker, while I do have many co-workers, my friend does not fill only one role in my life.

Note the words “many” and “one”.  Data relation experts talk about three main types of data relationships, and they are as follows:

One To One (1:1) is not particularly relevant to our discussions, but one example would be the relationship between a person and their social security number. A person has only one SSN (in theory), and an SSN has only one person (also in theory).

Many To One (N:1) is how to describe a hierarchical relationship.  Many files can be in a folder, but a file can only be in one folder.  The first example in Hierarchies Are Overrated also showed a hierarchy, but from a top-down perspective.

And finally…

Many To Many (N:N) shows how all elements can link to each other.  If the graphic were turned on its side, you could see that while each parent has multiple children, each child can also have multiple parents.  I can know many people that are “friends”, but someone who is a friend can also be a business partner, romantic partner, etc.

You can see that at least conceptually, Many To Many is a more appropriate model for how we organize thoughts in our heads.

I think it’s a given that we have a need to externalize the thoughts in our head – whether for todo lists, grocery lists, applying categories to things, etc.  Since we don’t organize our thoughts hierarchically, we often need an alternative to hierarchies.  Since Many to Many better represents how we think about things, it can be an effective alternative to hierarchies for how to externalize our thoughts.

Next, I’ll show some attempts at using Many To Many in the real world, and some of the common struggles it can cause.