SQLite primary key, indeksy

0

Witam! Mam mały problem ze zrozumieniem pewnej rzeczy, albo nie wiem czy dobrze to rozumiem. Otóz mamy taką sytuację, że tworzę tabelę np. Customers,
w której mam takie pola jak ID, Name, Surname, Address. I teraz chcę, aby kluczem głównym w mojej tabeli było ID. Zatem nie może pojawić się wiecej niż jeden wiersz z danym ID. Ale poza tym chcę żeby nie było więcej niż jeden wiersz z takim samym Name, Surname, Address. To w takim przypadku dodaje się jakiś indeks unikalny?
Bo wymyśliłem takie coś, żeby przy tworzeniu tablicy dać id na primary key, unique, autoincrement, a po zadeklarowaniu pol, podać coś takiegio Constraint Unique(name,surname, address). I niby działa, ale spotkałem coś takiego jak Indeks - no i wyczytałem, że służy do lepszego / szybszego pobierania danych itp...i tam można zaznaczyć kilka pół i wybrać Unique - ale nie rozumiem co się stanie w czymś takim. Z góry dziękuję za odpowiedź !

0

primary key, autoincrement na id oraz indeks unique na name, surname, address.

ale nie rozumiem co się stanie w czymś takim

Wyrzuci błąd, gdy będziesz chciał dodać wpis, który nie jest unikalny na id bądź name, surname, address.
Tabela będzie również nieco większa w sensie fizycznego rozmiaru pliku na dysku (indeksy są zapamiętywane osobno), lecz szybsza (właśnie dlatego, że indeksy są zapamiętywane osobno).

0

Nie wiem, jak SQLite, ale inne bazy na CONSTRAINT UNIQUE domyślnie tworzą INDEX.

1 użytkowników online, w tym zalogowanych: 0, gości: 1