Representing enumerations

What is the preferred way to implement enumerates?

I’ve got several instances where I want to create a vertex type with an attribute that has one of several fixed values (an enumerated type). Two solutions come to mind:

  1. Create a new vertex type with instances representing my small set of values, but this seems like a bit of overkill (and it seems like it could get in the way of some path matching - since I would need to match “forked” paths to get the enumerate value).

  2. String Compress, but this is slower than String and it doesn’t really limit the value set.

Are there alternatives?

Is there a recommended/best practice?

Thanks.