Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PRIMARY + UNIQUE key na jednym polu w tabeli
Forum PHP.pl > Forum > Bazy danych > MySQL
ghostrider
takie oto teoretyczne pytanko:

czesto widze jak ludzie tworzac tabele nadaja
index polu PRIMARY KEY także jako UNIQUE

tak to robią:

  1. CREATE TABLE `tabela` (
  2. `id` int(4) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `pole1` varchar(20) NOT NULL DEFAULT '0',
  4. `pole2` int(6) NOT NULL DEFAULT '0',
  5. PRIMARY KEY (`id`),
  6. UNIQUE KEY `id` (`id`)
  7. ) TYPE=MyISAM


i ja sie pytam w jakim celu nadawac unkalność polu które z samej definicji jest unikalne?

zrobilem testy, myślałem ze będzie szybciej wykonywalo zapytanie, albo coś i dla 25.000 wpisów nie uzyskałem poprawy czasu exclamation.gif

wartości pola PRIMARY muszą(exclamation.gif) być unkalne w obrębie tableli i są INDEX-owane bez specjalnych zabiegów z naszej strony.

Jeśli ktoś z was ma inne informacje na ten temat prosze o info.

Dzięki
mhs
Prawdę powiedziawszy jakoś nigdy nie zwracałem uwagi na coś takiego. Faktycznie, PRIMARY KEY jest jednoczenie kluczem unikalny i wydaje mi sie, ze nie ma wiekszego znaczenia czy w kodzie tworzacym tabele dodamy jeszcze UNIQUE KEY czy nie. Osobiscie tworzac tabele z reki pisze w definicji pola słowo PRIMARY KEY i nic więcej (poza odpowiednią oczywiście definicją pola).

Być może (nie jestem pewnien) wynika to przez wykorzystanie przez osoby różnych programów do projektowania struktury bazy danych lub zarządzania nią (jak np. DB Designer, phpMyAdmin, inne), które dodają po prostu coś takiego.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.