You are here: Re: Index and foreign keys « PHP SQL « IT news, forums, messages
Re: Index and foreign keys

Posted by Robson on 10/06/05 16:12

Ok I understand.
Furthermore, is it important to declare a primary key as an index or is it
implicit when you declare it as a primary key ?

Thanks for your kind help :)

Regards


"Stefan Rybacki" <stefan.rybacki@gmx.net> a ιcrit dans le message de news:
3qira3Ff7pgoU1@individual.net...
> Robson wrote:
>> Hi,
>>
>> I'm trying to setup a decent DB and I've just discovered the INNODB type
>> which is to my mind very interesting. Anyway I want to use foreign keys
>> in order to make easier the updating and deletion of my DB elements and
>> in the examples I have, I always get to declare indexes before declaring
>> my foreign keys. A simple example :
>>
>> CREATE TABLE product (
>> category INT NOT NULL,
>> id INT NOT NULL,
>> price DECIMAL,
>> PRIMARY KEY(category, id)
>> ) TYPE=INNODB;
>>
>> CREATE TABLE customer (
>> id INT NOT NULL,
>> PRIMARY KEY (id)
>> ) TYPE=INNODB;
>>
>> CREATE TABLE product_order (
>> no INT NOT NULL AUTO_INCREMENT,
>> product_category INT NOT NULL,
>> product_id INT NOT NULL,
>> customer_id INT NOT NULL,
>> PRIMARY KEY(no),
>> INDEX (product_category, product_id),
>> FOREIGN KEY (product_category, product_id)
>> REFERENCES product(category, id)
>> ON UPDATE CASCADE ON DELETE RESTRICT,
>> INDEX (customer_id),
>> FOREIGN KEY (customer_id)
>> REFERENCES customer(id)
>> ) TYPE=INNODB;
>>
>>
>> Why do I have to declare "INDEX (product_category, product_id)" and
>> "INDEX (customer_id)" before each foreign key ? I have tried to create
>> the last table without these lines and it works fine, so what is the
>> importance of this kind of declaration and how does it improve my DB ?
>
> Its because of performance reasons. Indices avoid full table scans. And
> since you need the foreign key attributes often on cascades or on joins it
> makes sense to define an index over them. In general it makes sense to
> create an index over attributes you're often ask for.
>
> Regards
> Stefan
>
>>
>> Thanks very much for taking some of your time to read / answer my post :)
>>
>> Regards
>> Rob

 

Navigation:

[Reply to this message]


УдалСнная Ρ€Π°Π±ΠΎΡ‚Π° для программистов  •  Как Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Google AdSense  •  England, UK  •  ΡΡ‚Π°Ρ‚ΡŒΠΈ Π½Π° английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Π‘Π°ΠΉΡ‚ ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ Π² Π‘Ρ‚ΡƒΠ΄ΠΈΠΈ Π’Π°Π»Π΅Π½Ρ‚ΠΈΠ½Π° ΠŸΠ΅Ρ‚Ρ€ΡƒΡ‡Π΅ΠΊΠ°
ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π΅Π±-сайтов, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, поисковая оптимизация