Optimal database Structure for my CRM app

i would like to know if this database structure is correct or is there a better way to do it for my use case
this is my database scheme

and this is how my intial form looks

i would like to filter out the drop down menus for cities and district according to region selected and then save that data in customer record.

After i have gathered customer data , I would like to see the data visually using different charts e.g ( Bar chart of number of customers in Different Districts)

I made Region an Option set as there is total of 13 regions. Should i also make it a data type or keep it as an Option set ?

Hi @Shubi,
You can keep the region as an option set, even it’s quite weird that the region is an option set and the city is not. But you can keep it like that, it will maybe give you a small boost in performance.

If you want to see the data visually, you should create a field like “auto_District” in the Customer table, and this field should be filled automatically with backend workflow. This way, your graph will load more quickly because the “Do a search for” will be lighter.