Quick question on schema and performance implications.
Let's say I have a parent-child relationship where access to the child allows access to the parent.
For example orgs and repos where repos belong to an org. Having edit access to any repo in the org allows you to view the org.
Possible approaches:
1. Write the org-repo relationship. Use transitive relationship on the org. For example, permission view = repo->edit.
Benefits:
• App doesn't have to handle logic to remove access to org when user loses access to the last repo they had access to.
• check performance may not be impacted?
Question:
• Will LR performance be impacted? Say a user has access to 100 repos that are in 5 orgs. Would doing an LR lookup for the user's orgs be much slower than if the user had a direct viewer relation with that org?
2. Have the app set and unset view on the org.
Implication:
• When removing edit access to a repo, app would have to check if a user has access to any other repo in the org, if not, remove the view access from the org.
3. Any other suggestions on approach?