Taxonomies are very useful for all sorts of things. But as many have pointed out they suffer from their lack of ability to carry metadata.
Assuming I have only posts that don't have 'natural' parents on my site, why shouldn't I just taxonomise my posts by attaching them to a post_parent, and store my metadata in the parent's post_meta?
I have a CPT 'birds' and a taxonomy 'user_bird_collection'.
I have a user, Jack, and I want to add the Canary to his collection.
With a taxonomy
I create (or append to) a term in the user_bird_collection called 'Jack' (or something more unique like his UID), adding the Canary to the term.
When Jack goes to mybirds.com/my_collection I show him all the birds in his term.
If he wants to go one better and name his canary, I'm in a pickle because I have to add metadata to the relationship between the canary and Jack's collection.
I create a new post with Jack as the author, whose post_parent is the ID of the canary.
When Jack goes to the collection page I show him all the posts that belong to him, and I cleverly divert all the demands for bird details, images etc up to the original canary.
When he wants to name his canary, all I need to do is add metadata to Jack's post - effectively his 'own' copy of the canary, a sort of wrapper around it.
- Querying is just as easy.
- I can add as much metadata as I like to the original bird OR the personalised bird using post_meta.
- I'm not tied to one of several competing implementations of term meta.
What's the problem with doing it this way?