Christian Stromberger wrote: > Disclaimer: SQL/database newbie here. > > Let's say I have a table of authors with columns for last name and first > name. Is there any general guideline re using a separate integer for the > primary key as opposed to a combination of the last and first names as the > key? I ask because by using the names, this would prevent duplicate entries > into the db, right? Whereas using a separate integer key would not prevent > this--you'd have to search for the author to see if it was already in the db > before inserting to avoid dupes, right?
Yes. Yes. On the second point, you would want to make a [non-unique] key on the first and last name columns. > Assume I am not concerned about there being two different "Joe Smith" > authors that are different people. I only want to associate an author name > with a book. The column you seek is an integer column with the auto_increment flag, e.g.: CREATE TABLE authors ( last_name char(64) DEFAULT '' NOT NULL, first_name char(64) DEFAULT '' NOT NULL, author_idx integer NOT NULL AUTO_INCREMENT, PRIMARY KEY( author_idx ), KEY( last_name(20), first_name(20)), KEY( first_name(20)) ); The key on only first_name is there in case you query on just the first_name. The manual will tell you lots more about auto_increment and how keys are used. b. --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php