I’m working on an application where users have different permissions to use different features (e.g. Read, Create, Download, Print, Approve, etc.). The list of permissions i
Your queries will run faster using a flags enumeration (bitmask), because you won't need to include a join to the associated table in order to make sense of the value.
Personally, I would use an associative table.
A bitmask field is very difficult to query and join on.
You can always map this to your C# flags enum and if performance becomes and issue refactor the database.
Readability over premature optimization ;)
There is no definitive answer, so do what works for you. But here is my catch: