the only problem with the bitwise solution is that the answer is not obvious
The reason why the many-to-many db is better is because if some1 else looks at your code it is a pattern they can undestand, the bitwise thing is more of a hack. On the other hand the DB solution still works if you later decide to change that boolean for something else (maybe subservices?)

