I am working on a government project which involves building a backend logging and billing system for water supply management. Usually the government has two types of customers - Industries and colonies. My main concern is how to place these two types of customers in database.
The difference between these two customers is the information. For example, the industries need to provide more information such as GST number, industry code etc. And the charges for water usage are applied differently based on the customer type - colony or industry.
Now followings are some points I am considering before designing.
1 - If I use two tables for different customer types then it might be slightly difficult to implement single authentication system. I don't think that would be a good practice.
2 - If I place both customers in one table with a customer_type column, then there will be many NULL cells. For example colony customers do not need to give their GST number.
3 - There are many tables where the reference for a customer is required. For example in water_connections table. If I place both customers in different tables, then I will have to use concept of polymorphism in many tables.
I am hoping that one of you would suggest some good practices for such scenario.