![]() |
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
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.
|
|
|
![]()
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ć).
|
|
|
![]()
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.
|
|
|
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 18:04 |