Entity-Based Information Architecture in Drupal 7

One of the most significant architectural changes in Drupal 7 relates to the abstraction of content types, taxonomy, and files as fieldable "entities".

Despite the fact that these distinct data types are starting to converge along some lines, there are still some basic litmus tests that should be applied when determining which type of entity to use in a given situation.

One of the most significant architectural changes in Drupal 7 relates to the abstraction of content types, taxonomy, and files as fieldable "entities".

Despite the fact that these distinct data types are starting to converge along some lines, there are still some basic litmus tests that should be applied when determining which type of entity to use in a given situation.

Content Type

When you're trying to determine whether or not to create a content type to satisfy a requirement, here are some criteria to use:

  • Does it need to be workflow managed (i.e. worked on in an unpublished state)?
  • Would a user want to subscribe to its RSS feed?
  • Can it literally be considered as standalone "content" in a traditional sense (i.e. an article)?
  • Is it searchable?

Taxonomy

Criteria to use:

  • Is it primarily used as a means of attribution/classification/grouping?
  • Would you want to use specific terms within a vocabulary to refine search results?

File

Criteria to use:

  • Is it essentially used as a "supporting" file/asset (i.e. never has to be treated as "standalone" content?
  • Does it need supporting metadata (tags, author attribution, etc)?

Summary

There are a bevy of other factors to consider when making these decisions (project-specific requirements, performance/load concerns, etc) but these criteria can really help jumpstart conversations related to information architecture.

Check out this series of blog posts from ISTOS that provide a more in-depth / technical analysis of the shift to entities in Drupal 7.

Dave Leonard