Replies To: Normalization ... Clients --> Companies vs. Individuals

Re: Normalization ... Clients --> Companies vs. Individuals

Posted 30 January 2008 - 12:38 AM

It looks like you're on the right track there, in my opinion anyways, but make sure in your clients table to add the ClientType_ID for each client. I would also move to SQL Server as well, since you can have a limited number of concurrent connections whereas with SQL Server you can have as many concurrent connections as the server can handle, and as long as the queries are written correctly, such as adding NOLOCK after each table you're including in the query, such as

SELECT * FROM TableName (NOLOCK)

This will prevent any blocking issues that can occur with concurrent connections, or when 2 people are accessing the same table at the same time.

If you dont have access to SQL Server and you're stuck using Access, just make sure your queries are written efficiently to help prevent any blocking issues that can occur.

I know I got way off track, but as far as your original question, thats more than likely the way I would go to normalize the data, and make it easier to write efficient queries.

P.S: Don't even use SELECT * FROM TableName unless you need all the columns in the table, doing this just pulls back data that is ultimately discarded and uses unnecessary resources

Can your contacts belong to more than one client? Probably not. If they can, that's another senario, we're going with this one for now. You'll want a rule so that only one IsPrimaryContact=true can exist for each Client_ID.

Tbl_Client
--Client_ID
--Company_ID (allow NULL) (FK to Tbl_Company)

You'll want to require that every client has at least one primary contact.