On 14.12.2007 09:21 Darren Duncan wrote: > If you have a place that holds a value, it should always hold a > value. If you don't know a value for a place or a value isn't > applicable there, then the place shouldn't exist at all. > > The more correct way to do this which SQL supports is through table > normalization, splitting tables on vertical lines at least such that > for any given row in each table, all columns/fields can be populated > with real/normal values at once. Fields/columns that are only > sometimes valued are in their own rows of separate tables, so if we > don't have values to put there, the corresponding rows simply don't > exist.
This wouldn't be possible (within a reasonable amount of work) in my application where there is lots of address data filled in at different times. Usually there is a first telephone contact where only the name and perhaps one or two more fields are filled. The rest is added later. That would be an awful lot of tables to manage all possiblities. But perhaps I could take the advice for the fields where it really matters. I never have a query where it is important if the second mobile phone number is filled or not but there are other cases where it does matter and I could try to normalize these in the way you suggest. Thanks -Michael ------------------------------------------------------------------------- SF.Net email is sponsored by: Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ Rose-db-object mailing list Rose-db-object@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rose-db-object