Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] klucz główny tabeli 'users', 'id', czy 'login?
ciembor
post
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 3
Dołączył: 10.02.2010

Ostrzeżenie: (0%)
-----


Tworzę bazę danych, w których mam tabelę z użytkownikami serwisu i tabelę ze stworzonymi przez nich projektami. Przypomniałem sobie, że kiedy ostatnio robiłem projekt na PHP, ćwiczeniowiec zwrócił mi uwagę na to, że ustaliłem jako klucz główny 'login', zamiast dodać każdemu użytkownikowi autoinkrementowanego 'id'. Ktoś może mi powiedzieć w czym takie rozwiązanie jest lepsze? Na dzień dzisiejszy wersja z loginem w roli klucza głównego tabeli 'users' wydaje mi się bardzo racjonalna, w końcu każdy login jest unikalny.

Ten post edytował ciembor 3.05.2010, 19:25:48
Go to the top of the page
+Quote Post
Mefiuu
post
Post #2





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


rzeczywiście login jest unikalny, bo można sprawdzić przed dodaniem go do bazy czy już takiego nie ma. Ale za to numer id też najczęściej jest unikalny, bo przypisywany automatycznie i jest to kolejny numer. Ja myślę, że nie jest to kwestia lepsze-gorsze.
Go to the top of the page
+Quote Post
wookieb
post
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Klucze główne powinny być numerami ze względu na szybkość ich przeszukiwanie, poza tym łatwiej innym tabelom przekazać id użytkownika niż jego login (który przecież może się zmienić).
Go to the top of the page
+Quote Post
jacusek
post
Post #4





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Ja też bym się skłaniał do id. Szybkość działania takiego indeksu będzie znacznie większa.
Go to the top of the page
+Quote Post
ciembor
post
Post #5





Grupa: Zarejestrowani
Postów: 42
Pomógł: 3
Dołączył: 10.02.2010

Ostrzeżenie: (0%)
-----


A czy warto takie 'id' dodawać również w tabelach, których klucze nie są kluczami obcymi innych tabel?

//edit

Ok, zerknąłem na to i już nie mam więcej pytań(IMG:style_emoticons/default/biggrin.gif) .
http://codex.wordpress.org/images/8/83/WP_27_dbsERD.png

Ten post edytował ciembor 3.05.2010, 21:01:49
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 18:04