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

Reply via email to