Welcome To The Home Of The Visual FoxPro Experts  
home. signup. forum. archives. search. google. articles. downloads. faq. members. weblogs. sponsors. rss.
 From: Mike Yearwood
  Where is Mike Yearwood?
 Toronto
 Canada
 Mike Yearwood
 To: Ken Murphy
  Where is Ken Murphy?
 Springhill
 Canada
 Ken Murphy
 Tags
Subject: RE: Best Coding Practices for Newbies
Thread ID: 160033 Message ID: 169998 # Views: 55 # Ratings: 0
Version: Visual FoxPro 8 Category: General VFP Topics
Date: Sunday, April 27, 2008 4:54:49 PM         
   


>
> Mike,
>
> The point I am trying to make is that you can work with non-normalized tables in a multi-user environment. How many times have you seen an employee table with
>
> CREATE TABLE Employee (RecordID I AUTOINC, Surname C(25), MiddleName C(25), Surname C(25), ...)
> 

>
> This is a VERY common scenario in multi user environments but one could argue that this table is not normalized. How many employees have the name "Smith" or "John". One could (and I would argue, should) normalize this data but it will nave no impact on the ability for multiple users to work with the data.

You can work with non-normalized data, but that means you cannot have a straight-forward design.

That table is sufficiently normalized. The surname, middlename and I presume you meant firstname are descriptive of the entity, in this case an Employee. That one could break out surnames and firstnames and middlenames and replace them with keys is taking normalization too far. There is a yin-yang to normalization. Normalization is keeping unlike entities apart.

The point in a table is to not have two REPRESENTATIONS of the same entity. One should also not have multiple representations of other entities in the same table.

A name is not really an entity. It's a description of an entity. An entry in a dictionary. I cannot grab a MICHAEL or KEN. A house is an entity. The address of the house is a representation of the house entity.

I could have a bank transaction table.

TransID i, Amount n(10,2),

Should I make an amount table and replace amounts with a key? No because the amount is not the entity - the raison d'etre (the reason for the existence) of the table.

Should I put address in the employee table? Technically no. It is not a description of the employee entity.

What you're suggesting requires much more complexity in the handling of the data.

I can make a simple form class. It can provide simple CRUD operations. I can have people adding/editing employees all day without stepping on each other without complex coding. I can have an address table and again, no stepping on each other. Fixing the description of the address entity benefits the data integrity of the system. I could even have a history table showing the history of the addresses of the employee. The employee's current address can be extracted easily.

That makes address historically accurate. If a piece of mail is returned, I can look at the address history and see that it was sent just prior to the most recent address change.

The address history can be represented with a grid on the employee form. All that can be handled easily. It will be a rare thing that there is a conflict between two users trying to update these entities. So I manage to meet the requirements of the system with a single form UI design, a single data class design and three tables.

Mike Yearwood






COMPLETE THREAD
Best Coding Practices for Newbies Posted by Dan Baker @ 2/11/2008 9:45:47 PM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 2/11/2008 10:20:17 PM
RE: Best Coding Practices for Newbies Posted by Marcia Akins @ 2/11/2008 10:37:35 PM
RE: Best Coding Practices for Newbies Posted by Bernard Bout @ 2/12/2008 3:13:39 AM
RE: Best Coding Practices for Newbies Posted by tushar @ 2/12/2008 3:44:07 PM
RE: Best Coding Practices for Newbies Posted by Glenn Villar @ 4/26/2008 8:44:34 AM
RE: Best Coding Practices for Newbies Posted by Cetin Basoz @ 2/12/2008 3:52:43 PM
RE: Best Coding Practices for Newbies Posted by Leslie Botchway @ 2/12/2008 11:12:49 PM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 2/13/2008 2:12:32 AM
RE: Best Coding Practices for Newbies Posted by Leslie Botchway @ 4/28/2008 1:38:57 PM
RE: Best Coding Practices for Newbies Posted by Jun Tangunan @ 4/28/2008 3:02:59 PM
RE: Best Coding Practices for Newbies Posted by Lyrad Bangoy @ 4/29/2008 9:33:26 AM
RE: Best Coding Practices for Newbies Posted by Christian Tabligan @ 4/29/2008 10:05:09 AM
RE: Best Coding Practices for Newbies Posted by Lyrad Bangoy @ 4/29/2008 10:19:00 AM
RE: Best Coding Practices for Newbies Posted by Cetin Basoz @ 4/29/2008 10:49:48 AM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/29/2008 7:31:25 PM
RE: Best Coding Practices for Newbies Posted by Cetin Basoz @ 2/13/2008 11:15:28 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 2/14/2008 7:20:53 PM
RE: Best Coding Practices for Newbies Posted by Pamela Thalacker @ 2/12/2008 9:17:58 PM
RE: Best Coding Practices for Newbies Posted by Tamar Granor @ 2/12/2008 11:13:57 PM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 2/13/2008 2:17:48 AM
RE: Best Coding Practices for Newbies Posted by Bernard Bout @ 2/13/2008 5:55:54 AM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 2/13/2008 10:28:13 AM
RE: Best Coding Practices for Newbies Posted by Christian Tabligan @ 2/13/2008 2:37:30 PM
RE: Best Coding Practices for Newbies Posted by Ilya Rabyy @ 2/13/2008 7:14:07 PM
RE: Best Coding Practices for Newbies Posted by Andy Kramek @ 2/13/2008 7:39:02 PM
RE: Best Coding Practices for Newbies Posted by Ilya Rabyy @ 2/13/2008 8:12:51 PM
RE: Best Coding Practices for Newbies Posted by Christian Tabligan @ 2/13/2008 7:46:29 PM
RE: Best Coding Practices for Newbies Posted by Ilya Rabyy @ 2/13/2008 8:28:26 PM
RE: Best Coding Practices for Newbies Posted by Christian Tabligan @ 2/13/2008 8:48:11 PM
RE: Best Coding Practices for Newbies Posted by Ilya Rabyy @ 2/13/2008 9:01:18 PM
RE: Best Coding Practices for Newbies Posted by Juan Antonio Santana @ 2/13/2008 3:46:59 PM
RE: Best Coding Practices for Newbies Posted by Ilya Rabyy @ 2/13/2008 7:28:57 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 2/14/2008 7:31:37 PM
RE: Best Coding Practices for Newbies Posted by Ilya Rabyy @ 2/14/2008 8:45:29 PM
RE: Best Coding Practices for Newbies Posted by Sandeep Misra @ 4/26/2008 4:16:39 AM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 4/26/2008 2:36:22 PM
RE: Best Coding Practices for Newbies Posted by Sandeep Misra @ 4/28/2008 5:12:22 PM
RE: Best Coding Practices for Newbies Posted by Tamar Granor @ 4/28/2008 10:51:51 PM
RE: Best Coding Practices for Newbies Posted by Anders Altberg @ 4/27/2008 1:18:05 AM
RE: Best Coding Practices for Newbies Posted by tushar @ 4/27/2008 7:39:42 AM
RE: Best Coding Practices for Newbies Posted by Anders Altberg @ 4/27/2008 12:59:24 PM
RE: Best Coding Practices for Newbies Posted by tushar @ 4/27/2008 2:04:48 PM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 4/27/2008 2:21:02 PM
RE: Best Coding Practices for Newbies Posted by Anders Altberg @ 4/28/2008 12:56:54 AM
RE: Best Coding Practices for Newbies Posted by tushar @ 4/28/2008 7:02:40 AM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/28/2008 1:33:37 PM
RE: Best Coding Practices for Newbies Posted by Anders Altberg @ 4/28/2008 9:06:34 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/28/2008 9:40:31 PM
RE: Best Coding Practices for Newbies Posted by tushar @ 4/28/2008 9:54:04 PM
RE: Best Coding Practices for Newbies Posted by Anders Altberg @ 4/29/2008 12:38:25 AM
RE: Best Coding Practices for Newbies Posted by tushar @ 4/29/2008 6:23:59 AM
RE: Best Coding Practices for Newbies Posted by Jun Tangunan @ 4/29/2008 7:33:02 AM
RE: Best Coding Practices for Newbies Posted by Anders Altberg @ 4/29/2008 3:43:15 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/29/2008 7:39:47 PM
RE: Best Coding Practices for Newbies Posted by Anders Altberg @ 4/29/2008 8:54:01 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/30/2008 1:08:53 AM
RE: Best Coding Practices for Newbies Posted by tushar @ 4/30/2008 6:51:25 AM
RE: Best Coding Practices for Newbies Posted by Kevin @ 4/26/2008 6:47:17 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/26/2008 10:09:55 PM
RE: Best Coding Practices for Newbies Posted by Kevin @ 4/27/2008 1:19:56 AM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 4/27/2008 1:35:13 AM
RE: Best Coding Practices for Newbies Posted by Kevin @ 4/27/2008 1:45:30 AM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 4/27/2008 2:49:46 AM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/27/2008 5:09:04 AM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 4/27/2008 2:29:00 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/27/2008 4:54:49 PM
RE: Best Coding Practices for Newbies Posted by anton d @ 4/26/2008 7:47:01 PM
RE: Best Coding Practices for Newbies Posted by Garth Groft @ 4/28/2008 8:59:33 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/28/2008 9:41:17 PM
RE: Best Coding Practices for Newbies Posted by tushar @ 4/28/2008 10:00:24 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/28/2008 11:14:16 PM
RE: Best Coding Practices for Newbies Posted by Tamar Granor @ 4/28/2008 10:56:38 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/29/2008 12:14:37 AM
RE: Best Coding Practices for Newbies Posted by Anders Altberg @ 4/29/2008 12:50:06 AM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/29/2008 7:41:24 PM
RE: Best Coding Practices for Newbies Posted by Garth Groft @ 4/29/2008 9:32:04 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/30/2008 1:11:06 AM
RE: Best Coding Practices for Newbies Posted by Tamar Granor @ 4/30/2008 1:53:41 AM
RE: Best Coding Practices for Newbies Posted by Garth Groft @ 4/30/2008 2:10:22 AM
RE: Best Coding Practices for Newbies Posted by Tamar Granor @ 4/30/2008 1:50:36 AM
RE: Best Coding Practices for Newbies Posted by Bernard Bout @ 4/30/2008 2:43:38 AM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/30/2008 3:45:10 PM
RE: Best Coding Practices for Newbies Posted by Lyrad Bangoy @ 4/29/2008 9:37:22 AM