Many To Many Is Not Physical

by Curt

(Note: this backfills some of the supporting logic behind earlier entries – named, Many To Many Is Misunderstood.)

Back in the olden days, every library had something called a card catalog.  You would go to the large wooden cabinet, pull out a thin wooden drawer, and look up a book.  A card inside would give you a location in the library, and then you’d go to that section of the library to find your book.

The shelves themselves were purely hierarchical.  The Dewey Decimal System laid books out generally by subject, and then alphabetically by author.  Each book was in only one area, each subject was in only one section of the library.

The problem with that hierarchy should be familiar by now – without the card catalog, you could only find a book if you knew what subject it was under, and what the author’s name was.  But with the card catalog, you could look up a book by Title, by Author, by Publisher, and even by any of several Subjects that the book might have been listed under.

It can be argued that the card catalog created a true Many To Many system, constructed in the physical world.  Each book could be looked up by multiple Authors, multiple (alternate) Titles, multiple Subjects, and they would all lead to the same book, at its Dewey Decimal location on the shelves.

But is it really Many To Many, or just an illusion?  The cards in a card catalog refer to representations of books – simple sets of information that include all of a book’s alternate titles, authors, publishers, and subjects.  And here is where the problem lies.  Ideally, each library book should have only one representation that can be looked up in multiple ways.  Instead, the card catalog’s cards are each copies of that representation.  If a book has twelve cards in the card catalog, those are twelve separate copies of the book’s representation, all displayed in slightly different ways.

And that’s where the synchronization problems can happen.  What if a book’s information needs to be corrected, or listed under a new subject?  What if a book is damaged or lost, or needs to be removed?  You can’t just edit or remove one card and expect all the other cards would automatically be adjusted.  You have to hunt through to find every single card.  For a large catalog, the librarians might even need a reverse catalog, where looking up a book would tell them the location of every related card  – and even the reverse catalog could go out of date.  In fact, librarians would regularly schedule card catalog cleanup periods, just to try and keep their heads above water.

So in fact, we’re back to a collection of hierarchical systems.  A book’s representation can’t actually be looked up in multiple ways because each representation (each card) is in only one drawer or location.  But since we’re trying to force a synchronized relationship between items in separate hierarchical locations, the maintenance it requires is costly and time-consuming.  The hierarchical system itself doesn’t capture this information that people impose onto it, because people are thinking about the system in non-hierarchical ways.  Therefore, the human thoughts aren’t completely externalized, the thoughts can be forgotten, and the outside structure can slowly become unsynchronized and corrupt.

It turns out that Many To Many can’t really be represented in a purely physical system.  It can be simulated, but only by introducing copies into hierarchical systems.  And this is because our physical world is purely hierarchical.  And because of all that, simulating a Many To Many system in the physical world is time-consuming, manual, tedious, and fraught with error.