Hello all. I am in the process of piecing together a software project that I plan to use in the day-to-day operation of my service business.

I'm sure this will be a simple question for someone here.

I will be tracking employees, service tickets, clients, & client IT Assets. I will also be keeping records of all problems/solutions to facilitate solving any future, similar issues.

My question is this,.... some clients are residential, some clients are businesses, and they are billed differently.

Some business clients have multiple contacts (or people) that I want to keep track of as well, especially in cases where we have multiple assets within a single business but each with different contacts.

Should I create a clients table that just holds a client ID, and a boolean value of weather they are a business or not, and then create separate tables for residential contacts, businesses and business contacts,.....

should I create a contacts table and a businesses table and just tie some contacts to a clientID and some to a businessID?

Any help/suggestions would be appreciated.

Recommended Answers

All 3 Replies

I would imagine a Client and ClientContact table arrangement would work just fine.

The difference between the residential or business clients can be address by a ClientTypeId or BillingCode identifier or similar mechanism, depending on what other info may need to be associated with that disctinction.

This is a bit lazy - go and have a go at what you think it should be.

How are these different types of customer billed differently? What data is different?

No, I would not use a boolean to indicate business / not business, unless that is the only data you need to store for these different types, which I very much doubt is the case.

I would say that your basic relationships would stem from a customer, that is dine, but you would probably have the business / personal customer specific information as relationship(s) to other tables as appropriate there. If the two types differ in billing by a rate, then I would expect that there may be a relationship from customer to rate, and that rate table holds information as to whether the customer is getting business or personal rate (as an example)

Without how things differ it is difficult to advise on any sort of design.

> Without how things differ it is difficult to advise on any sort of design.

Exactly. So it's odd that you declare anything "lazy". There aren't enough specifics to answer in detail and the OP never bothered to discuss it any further beyond the initial post.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.