I'm about to start writing my first 'useful' application, the project is some service management software which will enable the user to maintain a customer database along with their associated contract details. The main funtion of the application is to manage the equipment faults for theses contracts, it will be able to raise new faults and allocate them to one of the engineering staff as well as maintain a complete fault history for each customer.

I'm going to use a SQL database, the question is should I create collections for the customer , contract, fault etc to hold the data or just use a data table for each. I know this question is a bit vauge but I'm thinking of just using datasets and data tables but this would put everythig into one big class, is this good practice ?