Dawson, Michael wrote:
> I'm well aware of the need for a primary key, in addition to a sound
> table design, however, I'd like someone else to "word" a response for
> me.
>
> A co-worker built a data file (a data table on an AS400) with six
> fields. The only unique "key" of the record is the entire record,
> itself. The combination of all six fields must be used to identify the
> exact record.
There's no justification for doing that. None!
> "This is how it's done," is the reply I get. (I've been building
> web-based apps using relational DBs for 8 years. I have never used an
> entire record as the primary key.)
Say it with my, kids: Most. Useless. Table. Indexing. Ever.
> I'm not passing an entire record through a URL or in hidden form fields.
> Imagine the nightmare of maintaining this application...
Moreover, what use is the table when you have to pass around whole
tuples to do lookups on it?
A few things spring to mind: your cow-orker has no clue what
normalisation is; they
> A discussion of the existence of Oracle's sequences and SQL's identity
> fields did little to sway this person's opinion. This person's entire
> development background is AS400 with a history of bad database design.
The thing is, they should know this *anyway*! Take the example of a
users table, like this
CREATE TABLE users
(
user_name VARCHAR(16) NOT NULL PRIMARY KEY,
user_password VARCHAR(32) NOT NULL, -- Holds MD5 hash of password
-- ...other fields...
);
user_name makes sense as a primary key: it's uniques for each tuple, and
it's never going to change.
What is this person doing designing table schemas anyway?
> Now, I'm creating the table myself to do it right. ;-)
Do, and if they complain then do some benchmarking to show them that
your schema is just better. Then tell them "that's how it's done".
--
Keith Gaughan, Developer
Digital Crew Ltd., Pembroke House, Pembroke Street, Cork, Ireland
http://digital-crew.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Special thanks to the CF Community Suite Gold Sponsor - CFHosting.net
http://www.cfhosting.net
Message: http://www.houseoffusion.com/lists.cfm/link=i:4:183719
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe:
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54