I’ve successfully used exactly the approach cited by @lindsay_knowcode and @georgecollier. FYI, @anon7802758, here’s a rough outline to illustrate one implementation that accounts for roles with different constellations of permissions as well as disabling a user’s membership at the team level. As we’re all accustomed to in Bubble, it includes various fields that facilitate privacy rule expressions but otherwise wouldn’t be needed in a fully normalized database.
| Data Type | Fields |
|---|---|
| User | * Related Teams * Related Memberships * Selected Membership |
| Team | * Enabled Users * Enabled Memberships |
| Membership | * Team * User * Role * Enabled (yes/no) |
| Role | * Label (text) * Permission 1 (yes/no) * Permission 2 (yes/no) * Permission 3 (yes/no) * Permission x (yes/no) |