I am trying to build a model which contains 7 different levels of product from the region, country, .., brand, to SKU level. The problem is whenever a user adds an SKU for a perticular city it is also automatically added to every other city and occupies a lot of space. How do I solve the space issue and give users ability to process data at different levels?
What I understand is that you have a separate location list/hierarchy and a separate product hierarchy. When you add a new SKU, you are ideally adding it to the product hierarchy independent of the location hierarchy. Since you are using location and Product hierarchy as dimensions in the same module, you are creating a matrix of (locations) X (SKU).
Basis your list setup, it doesn't seem like SKU is City dependent so I am slightly confused on what you mean by adding an SKU for a city. The way you've setup your module, you will see the SKU for all locations and customers.
Using so many lists as dimension will explode your model size. I would recommend turning off the summaries on each line item and checking if some of them can do without all the dimensions being present for them. If your use case really requires you to have a City - SKU mapping, maybe create a separate concatenated list of City and SKU.
If I know that not all SKUs need to be mapped to all cities, my matrix will be very sparse. If you see the table, we have 25 cells being used (5 SKUs * 5 Cities) out of which I actually only need 6.
What you can do is create a separate concatenated list of the form SKU_City to define all combinations of SKU and City. This will reduce you module size from 25 to 6 in our example and helps you reduce the size drastically.
This fourth list would contain as properties only those combinations of the other dimensions which are valid.
As an example;
This list item is the combination of customer, brand, product and SKU lists. As properties you would have list formatted items assigned to each of the individual lists so you could map data out of this combination list into any combination of the other four dimensions.
If you were to add these as separate dimensions you would be creating combinations of all four lists which do not exists.