I need advice or help regarding the security model for my model-driven app.
As an example, I will use a list of companies, their shops and products.
I have 3 tables that have a relationship (Lookup) 1:n:
1. Companies - list of companies and their addresses, etc.

2. Shops - Every company has its own shops over the world

3. Products - a list of products that are in the shop

The goal is to share a record with a users or teams, and these users should see all related records in other tables.

So when I share "Company A" with the CEO (in Test Team) of this company, so this CEO should see all records that are in a relationship with this company (Shop A1, Shop A2, Product A11, A22, etc.).


Now when I check the access for Shop A1 or A2, I see that the CEO has access to these shops that are in relationship to "Company A".

The problem is when I check access for Products. Here we can see that the CEO has no access to products which are related to Shop A1, A2.

This means that this "shared related records" access is only for "1 level" (Company -> Shop).
The question is, if is possible to set/configure "depth" of this sharing somewhere?
Can be this solved in another way?
I tried use "Business Units" and Team, but the problem is that I would have to set a BU for each record in all tables, so in my case there may be more than thousands of records. Therefore, I would like to have it it with the this hereditary share.
Thanks for any advice.