I have various content types which have sub-types in my Drupal 7 site. e.g. "downloadable resources" content type, and within this there may be reports, presentations.

Is there any reason not to add this to a select field with a list of value=>label pairs?

Should I create a separate vocabulary for these options and add a new field referencing that terms? I have a couple of other content types similarly modeled, so I would end up with a load of very small (2-3 terms) vocabularies.

Taxonomy seems to be favoured but instinctively it seems overkill?

Edit: or is it better to have very granular content types (report, presentation...), even though the fields are the same between them?

2 Answers 2


As @reptilex mentioned, the answer to this question is going to vary depending upon your very specific situation. There are a lot of helpful documentation resources and blog posts floating about with good advice about making this decision.

drupal.org Guidelines for Taxonomy Design
blog - How to Decide Between Taxonomy and CCK to Classify Content
blog - Drupal Taxonomy vs. Content Type Field

  • Thanks. Your 2nd link is in my original question! But others useful. Again, the third pretty much says use taxonomies. :-) Jan 17, 2012 at 15:13

It really depends on your content types. I would try to use taxonomies if possible, it is not as much overkill as it seems. And it will allow you to use views and other modules that reflect them.

But like I said it depends a lot on how hierarchical your content is. If you for instance have 10 content types the almost the same fields with only three possible "taxonomies" that are the same between content types, I would seriously think about using the "taxonomies" as content types and the current content types as taxonomies. It might seem evident but I have caught myself doing this wrong.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.