"Michael J. Pawlowsky" <[EMAIL PROTECTED]> wrote on 10/28/2005 11:28:42 
AM:

> 
> When creating an index in phpMySQL I get a warning message about having
> 2 indexes using the same field.
> 
> The table is simply a product comment table.
> 
> The first index is simply an INDEX on the product_id to speed up
> displaying them when someone wants to lookup the comments for that 
product.
> The second is a UNIQUE constraint on the product_id and the user_id to
> make sure a user does not insert more than one comment per product.
> 
> phpMySQL shows me the following warning:
> *UNIQUE and INDEX keys should not both be set for column `product_id`
> 
> *If that really is bad to do...  besides programatically how would I do
> this.
> 
> 
> Thanks,
> Mike
> 

A UNIQUE *is* an INDEX with an added twist. It's a special kind of INDEX 
that only allows single combinations of the values in the columns that 
compose the INDEX.  A regular INDEX does not have this restriction.

Defining 

UNIQUE(product_id, user_id)

creates an INDEX. Any index that uses more than one column also acts as an 
index for each left-most sets of columns, including just the first one. 
Your UNIQUE and your INDEX overlap and the INDEX is not necessary.

Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine

Reply via email to