Okay. So it’s not that users will actually change their email address, but rather that you may want to change which users have access to certain data - yes?
If that’s the case, then the best solution will be to use Roles as Row Owners. With this, you define a Role (lets say Admin, for the sake of example), and then you can assign that role to one or more users. Then instead of adding a users email address as the row owner in your Things tables, you add the word “Admin”. Then every user with that role will have access to those rows.
If one of your Admin users changes, you simply remove the role from that user and assign it to another.
Yep, that’s exactly right, and that’s a classic use case for Roles.
Just one word of caution. If you need to assign more than one role to any user, then you won’t be able to do that with Glide tables. This is because in order to assign multiple roles, you need a non-computed array column, and there is no way to create that in a Glide Table. So you’d need to use a Google Sheet (or Excel/AirTable) for your Users table.
That’s really up to you - either way can work.
Personally I prefer the multi-app approach. This comes from experience. I started off by building one big mega-app for the company I work for. After a while it became way too big and complex, and was very difficult to maintain and manage. And it also started to bog down for the users. I’ve since split it into six separate Apps (all sharing the same data source), and it’s much easier to maintain.
But YMMV. I’d recommend at least creating a separate client app, as I’d imagine their user interface will probably be significantly different to that of your internal users.