I am redeveloping an existing web application with both weak source code and a weak underlying database design. I'm trying to develop things in a way that future expansion will be much easier, namely:
- Supporting new login mechanisms
- Supporting new user types (ie new subscriptions plans)
- Supporting new user roles
Here are a few screenshots of my unfinished schema. Do you see any problems / data inconsistencies that could arise from this design?
Orange squares are primary keys, and blue squares are foreign keys. Had to split this up into two images.
Users / Subscriptions / Auth Groups:

User Groups / Subscription Types:

Thanks in advance!