Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> pole ID w ogóle potrzebne?, przyśpieszy czy spowolni??
Dynuel
post
Post #1





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 27.12.2003

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


Tworzę bazę danych dla tłumaczeń strony, każdy użytkownik będzie mógł zrobić sobie właśnie tłumaczenie. Każdy tekst do tłumaczenia, dla każdego uzytkownika będzie przechowywany jako osobny rekord.

[tabela tlumaczenia]
id - numer id
uzytkownik - numer uzytkownika, do ktorego nalezy dane tlumaczenie
nazwa - numer/nazwa tlumaczonego tekstu
tlumaczenie - tlumaczenie

i mam pytanie odnośnie pola ID, czy ono jest w ogole potrzebne tutaj?? z konstrukcji można wywnioskować że żaden rekord nie będzie się powtarzał ponieważ dla każdego użytkownika będzie pare róznych tekstów do tlumaczenia, tak więc wykluczona jest możliwość zbędnych powtorzeń. tak więc pole id chyba nie ma tutaj zadnego zastosowania

A teraz pytanie czy to pole id, w ogole przyśpieszy czy też sporolni taką tabelę, a chciałbym zaznaczyc że mogą być w niej dziesiątki tysięcy rekordów (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)

dzięki za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
ActivePlayer
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


id zbędne.
indexuj wg pola 'nazwa'
Go to the top of the page
+Quote Post
Dynuel
post
Post #3





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 27.12.2003

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


no a indexowanie jest konieczne?? bo wartosci dla pol nazwa będę takie same dla kazdego uzytnownika
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
id zbędne.

Gdzie cos takiego wyczytales?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Widze ze teoria sie klania, primary key zawsze jest potrzebny. Na postawie tego identyfikujesz rekord, przyspiesz zlaczenia tabel, jesli uzyjesz podselektow to wtedy zobaczysz roznice.

Indeksy stosuj gdy pola powtarzaja sie max 20 %, ale to i tak zalezy od specyfikacji, potrzebne do relacji i tam gdzie uzywasz warunkow.
Go to the top of the page
+Quote Post
FiDO
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Cytat(SongoQ @ 2005-06-22 22:00:04)
Gdzie cos takiego wyczytales?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Widze ze teoria sie klania, primary key zawsze jest potrzebny.

Tak, ale nie zawsze jest potrzebny sztuczny klucz glowny, na tej tabeli mozna zalozyc PK na pola nazwa oraz uzytkownik i bedzie to dobry klucz glowny. To apropo teorii... Ja mimo wszystko wole zawsze dodawac sztuczny klucz glowny, bo ulatwia to wszelkie operacje typu usuwanie/edycja. Rekord identyfikujemy na podstawie jego PK, wiec w przypadku braku sztucznego PK, musimy przesylac do takich operacji wartosci wszystkich pol znajdujacych sie w PK (przy sztucznym mamy tylko jedna wartosc).
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@FiDO Z wieksza czescia sie zgadzam, z tymi sztucznymi kluczami przemysl taka sytuacja nagle wyniki sa z podselekta i lepiej jest zwrocic id niz varchary lub longi kluczy podstawowych. Dla pewnosci tak jak ty pisalem zawsze stosuje primary key i jest to pole id.
Go to the top of the page
+Quote Post
FiDO
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Dlatego wlasnie napisalem, ze to jest teoria.. sztuczne PK wcale nie sa wymagane, ale ulatwiaja zycie, wiec lepiej je stosowac nawet jesli beda to nadwyzkowe dane.
Go to the top of the page
+Quote Post
Dynuel
post
Post #8





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 27.12.2003

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


tak więc co mi polecacie w tym przypadku?? bo jeżeli chodzi o użycie tego pola id w moich skryptach, to nie bardzo będę z niego kozystał, jedynie uzytkownik i nazwa, do deklarowania rekordu. tak więc jak?? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ja sięprzychylam do opini większości i polecam ci te id. Prędzej czy później ci się przyda, nawet jeśli teraz z tego sobie nie zdajesz sprawy

pozdro
Go to the top of the page
+Quote Post
Dynuel
post
Post #10





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 27.12.2003

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


jedno jest pewne! na pewno się nie przyda:P teraz rozchodzi się o to czy to ma przyśpieszyć czy spowolnić prace tabeli, bo ja bym chyba nie dawał tego id, skoro nie potrzebne, no ale sie nie znam, tak więc chcę waszego zdania
dzięki
Go to the top of the page
+Quote Post
brachu
post
Post #11





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 13.04.2005

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


jezeli moge wtracic swoje trzy grosze to zgadzam sie z opinia wiekszosci ze id sztuczne sie po pierwsze przydaje - zwlaszcza przy tabelach planowanych na co najmniej kilka tysiecy rekordow.... a pomysl z nadaniem pk na pole nazwa niestety jest fatalny w skutkach, gdyz pk zachowuje sie jak unique i nie bedziesz mogl dac dwoch takich samych nazw... a pozostawienie tabeli bez pk przy wiekszej ilosci rekordow poprostu sie nie oplaca z punktu widzenia czasu jaki beda zajmowac zapytania (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Dynuel
post
Post #12





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 27.12.2003

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


no ale jakie zapytania, zawsze bede mial sprecyzowane wartosci uzytkownik i nazwa, a z id nie bede kozystal, na pewno nigdy! no bo nie mam jak. to moze lepiej teraz zapytam nie czy id jest potrzebne ale czy klucz w tabeli jest potrzebny i jaki by w tym przypadku ustawic??

ps. ja nie chce tego pola id robic bo wiekrzość ma w nawyku robienie go, itp. tak tylko dla picu

ale wlasciwie doszedlem do wniosku ze jest w ogole nie potrzebne, teraz jak z tym kluczem??

Ten post edytował Dynuel 23.06.2005, 11:38:03
Go to the top of the page
+Quote Post
brachu
post
Post #13





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 13.04.2005

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


Cytat
no ale jakie zapytania, zawsze bede mial sprecyzowane wartosci uzytkownik i nazwa

no dobra ale po cos Ci ta baza jest no nie?! wiec bedziesz robil "zapytania" do bazy chcący pobrac tlumaczenie prawda? wiec na tym rzecz polega, ze jezeli bedziesz mial duuuuuzo rekordow to klucz Ci sie przyda jak nic bo bedziesz szybciej otrzymywal wartosci z tabeli.... ale jezeli np. pole nazwa bedzie posiadalo unikalne wartosci (nie powatarzajace sie) to mozesz nadac pk na to wlasnie pole!!! a jezeli chodzi o klucze - to jezeli masz kilka tabel i beda jakos one od siebie zalezne to warto sie zastanowic nad dodaniem relacji (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
SongoQ
post
Post #14





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
jezeli masz kilka tabel i beda jakos one od siebie zalezne to warto sie zastanowic nad dodaniem relacji


wszystko przemawia za id i na tym polu primary key. Ale od Ciebie i tak zalezy jak to rozwiazesz. Opinie innych znasz.
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: 16.09.2025 - 00:33