indeks i mySQL
Marcin - 14-11-2006 00:10
indeks i mySQL
Witam!
Pytanie zapewne banalne,
mam tabelę
id | imie | nazwisko 1 a xx 2 b yy 3 c zz
id jest kluczem podstawowym, auto increment Jesli usunę wpis id 2 i dodam kolejny otrzymuję id = 4
id | imie | nazwisko 1 a xx 3 c zz 4 d qq
Czy jest możliwość że przy usunięciu id =2 baza będzie zawierała
id | imie | nazwisko 1 a xx 2 c zz 3 d qq
niekoniecznie musi odbywać się to na id, może trzeba wprowadzić dodatkowe pole w tabeli, chodzi mi o stricte liczbę porządkową.
Z góry dzięki za pomoc
keczerad - 14-11-2006 00:10
Marcin napisał(a): > Witam! > > Pytanie zapewne banalne, > > mam tabelę > > id | imie | nazwisko > 1 a xx > 2 b yy > 3 c zz > > id jest kluczem podstawowym, auto increment > Jesli usunę wpis id 2 i dodam kolejny otrzymuję id = 4 > > id | imie | nazwisko > 1 a xx > 3 c zz > 4 d qq > > Czy jest możliwość że przy usunięciu id =2 baza będzie zawierała > > id | imie | nazwisko > 1 a xx > 2 c zz > 3 d qq > > niekoniecznie musi odbywać się to na id, może trzeba wprowadzić dodatkowe > pole w tabeli, chodzi mi o stricte liczbę porządkową.
pytanie po co ?
--
keczerad
http://www.e-mo.com.pl sklep w (X)HTML
Marcin - 14-11-2006 00:10
> pytanie po co ? >
Zadałem konkretne pytanie wydaje mi się, a nie prosiłem o ocenę czy to ma sens w Twoich oczach czy nie.
news.onet.pl - 14-11-2006 00:10
Marcin napisał(a): > id jest kluczem podstawowym, auto increment > Czy jest możliwość że przy usunięciu id =2 baza będzie zawierała
Nie. Klucz podstawowy jest _niezmienny_
-- Matt Z
Michał Kuratczyk - 14-11-2006 00:10
Marcin wrote: > Zadałem konkretne pytanie wydaje mi się, a nie prosiłem o ocenę czy to ma > sens w Twoich oczach czy nie. A jak się Ciebie ktoś zapyta, czy można tak walnąć głową w ścianę, żeby sobie złamać kręgosłup, to też pomożesz znaleźć rozwiązanie, czy jednak zapytasz czemu dana osoba chce to zrobić?
To co chcesz osiągnąć jest złe, sprzeczne ze wszystkimi zasadami baz danych. Po prostu tego nie rób. Nie potrzebujesz tego, naprawdę.
-- Michał Kuratczyk
Piotr Kuliński - 14-11-2006 00:11
Michał Kuratczyk naskrobał(a) co następuje:
> Marcin wrote: >> Zadałem konkretne pytanie wydaje mi się, a nie prosiłem o ocenę czy to ma >> sens w Twoich oczach czy nie. > A jak się Ciebie ktoś zapyta, czy można tak walnąć głową w ścianę, żeby > sobie złamać kręgosłup, to też pomożesz znaleźć rozwiązanie, czy jednak > zapytasz czemu dana osoba chce to zrobić? > > To co chcesz osiągnąć jest złe, sprzeczne ze wszystkimi zasadami baz > danych. Po prostu tego nie rób. Nie potrzebujesz tego, naprawdę. > Żle człowieka osądzacie, przecież napisał wyraźnie >niekoniecznie musi odbywać się to na id, może trzeba wprowadzić dodatkowe >pole w tabeli, chodzi mi o stricte liczbę porządkową. Więc nie koniecznie musi to być klucz główny. Jeśli mają to być numery spraw, np. wprowadził jakąś sprawę o numerze X (może to byc ostatnia w tabeli) ale stwierdził że zupełnie jest niepotrzebna więc usuwa dodaje nowy rekord i numer sprawy jest X+2 a X+1 uciekło :( Oczywiście pilnowanie może załatwiać soft a nie baza, ale chodziło mu chyba o bazę.
-- pozdrawiam, GG i SkyPe w X-nagłówku posta, e-mail: zmień "wpw" na "wp" piotr "Nic nie stoi na przeszkodzie, co by przeszkody sobie nie stworzyć :)"
Michał Kuratczyk - 14-11-2006 00:11
Piotr Kuliński wrote: > Więc nie koniecznie musi to być klucz główny. Jeśli mają to być numery > spraw, np. wprowadził jakąś sprawę o numerze X (może to byc ostatnia w > tabeli) ale stwierdził że zupełnie jest niepotrzebna więc usuwa dodaje > nowy rekord i numer sprawy jest X+2 a X+1 uciekło :(
To niewiele zmienia. Tak czy inaczej trzeba to zrobić po prostu szeregując operacje na tej tabeli, co często wiąże się z serializacją dużej części systemu. Trzeba mieć cholernie dobry powód, żeby sobie zrobić taką krzywdę. A ja tam osobiście staram się nie pomagać ludziom w robieniu sobie krzywdy, dopóki mnie nie przekonają, że to dla ich dobra. :->
> Oczywiście pilnowanie może załatwiać soft a nie baza Może, tylko po co...
-- Michał Kuratczyk
Artur Muszynski - 14-11-2006 00:11
Michał Kuratczyk wrote: > To niewiele zmienia. Tak czy inaczej trzeba to zrobić po prostu > szeregując operacje na tej tabeli, co często wiąże się z serializacją > dużej części systemu. Trzeba mieć cholernie dobry powód, żeby sobie > zrobić taką krzywdę. A ja tam osobiście staram się nie pomagać > ludziom w robieniu sobie krzywdy, dopóki mnie nie przekonają, że to > dla ich dobra. :->
Przykład, który mnie często prześladuje, to "liczba porządkowa". Nie widzę innej sensownej możliwości, jak coś w stylu UPDATE ... WHERE lp=lp-1, ale też nie widzę niczego strasznego w takiej operacji. Oczywiście, nie jest to PK.
artur
Michał Kuratczyk - 14-11-2006 00:11
Artur Muszynski wrote: > Przykład, który mnie często prześladuje, to "liczba porządkowa". Nie widzę > innej sensownej możliwości, jak coś w stylu UPDATE ... WHERE lp=lp-1, ale > też nie widzę niczego strasznego w takiej operacji. Oczywiście, nie jest > to PK. Straszność zależy od wielu czynników i dlatego w dalszym ciągu uważam, że osoba pytająca powinna wyjaśnić dlaczego chce zrobić to, co chce zrobić. Jeżeli usunięcie może się zdarzyć tylko pod sam koniec listy, to przepisanie tych numerków nie będzie czymś strasznym (choć jest duża szansa, że zupełnie niepotrzebnym). Ale jeśli zdarzają się usunięca na początku, to co? Przepisywanie numerów w całej tabeli? Jeśli ma setki milionów rekordów, to jest to już poważny problem. Nawet jeśli ma mniej, albo usuwanie trafia się gdzieś w środku czy nawet na końcu, ale wystarczająco często, a system jest obciążony, to znów mamy problem. Poza tym może być potrzeba trzymania jakiejś historii, żeby wiedzieć, że od X do Y dokumentem o liczbie porządkowej N był ten dokument, a później tamten. Ogólnie same komplikacje.
-- Michał Kuratczyk
Artur Muszynski - 14-11-2006 00:11
Michał Kuratczyk wrote: > Straszność zależy od wielu czynników i dlatego w dalszym ciągu > uważam, że osoba pytająca powinna wyjaśnić dlaczego chce zrobić to, > co chce zrobić.
Zgadzam się, bo numeracji dokumentów się nie przestawia, co by to nie było.
artur
Marcin - 14-11-2006 00:56
> Straszność zależy od wielu czynników i dlatego w dalszym ciągu uważam, że > osoba pytająca powinna wyjaśnić dlaczego chce zrobić to, co chce zrobić. > Jeżeli usunięcie może się zdarzyć tylko pod sam koniec listy, to przepisanie > tych numerków nie będzie czymś strasznym
Po prostu dla wygody w danym przypadku, rozwiązanie potrafię znaleźć sam ale myślałem że zaproponujecie coś bardziej oryginalnego od mojego pomysłu, bazy wykorzystuję rzadko jako że nie jest to moja dziedzina zainteresowań, tabela zawierać będzie max. 20 rekordów także no problem, bo jakby miała zawierać setki milionów :) jak piszesz to zdaję sobie sprawę że poprawianie każdego rekordu w przypadku kasacji początkowych wierszy tabeli to byłaby masakra :)
Tak siak czy owak dzięki za zainteresowanie Pozdrawiam
keczerad - 14-11-2006 00:56
Marcin napisał(a):
> Po prostu dla wygody w danym przypadku, rozwiązanie potrafię znaleźć sam ale > myślałem że zaproponujecie coś bardziej oryginalnego od mojego pomysłu, bazy > wykorzystuję rzadko jako że nie jest to moja dziedzina zainteresowań, tabela > zawierać będzie max. 20 rekordów także no problem, bo jakby miała zawierać > setki milionów :) jak piszesz to zdaję sobie sprawę że poprawianie każdego > rekordu w przypadku kasacji początkowych wierszy tabeli to byłaby masakra :)
zeby cos zproponowac i to cos oryginalnego trzeba wiedziec do czego to ma sluzyc, niestety jako autor standartowego posta myslisz ze kazdy ma najnowszy model szklaj kuli czytajacy w myslach piszacego posty, w tym miejscu musze cie rozczarowac narazie niestac mnie na ten model ;).
--
keczerad
http://www.e-mo.com.pl sklep w (X)HTML
Paweł Matejski - 14-11-2006 00:56
Artur Muszynski wrote: > Michał Kuratczyk wrote: >> To niewiele zmienia. Tak czy inaczej trzeba to zrobić po prostu >> szeregując operacje na tej tabeli, co często wiąże się z serializacją >> dużej części systemu. Trzeba mieć cholernie dobry powód, żeby sobie >> zrobić taką krzywdę. A ja tam osobiście staram się nie pomagać >> ludziom w robieniu sobie krzywdy, dopóki mnie nie przekonają, że to >> dla ich dobra. :-> > > Przykład, który mnie często prześladuje, to "liczba porządkowa". Nie > widzę innej sensownej możliwości, jak coś w stylu UPDATE ... WHERE > lp=lp-1, ale też nie widzę niczego strasznego w takiej operacji. > Oczywiście, nie jest to PK.
Liczba porządkowa jest potrzebna przy wynikach zapytania, nie przy przechowywaniu danych. Sporo baz pozostawia ten problem klientowi, jednak przyznaje, że czasami brakuje rozwiązania takiego jak rownum w oracle.
-- P.M.
Artur Muszynski - 14-11-2006 00:56
Paweł Matejski wrote: > Liczba porządkowa jest potrzebna przy wynikach zapytania, nie przy > przechowywaniu danych. Sporo baz pozostawia ten problem klientowi, > jednak przyznaje, że czasami brakuje rozwiązania takiego jak rownum w > oracle.
Nie zastanowiłeś się. Jeśli klient chce uporządkować listę (np kategorie, wiadomości) wg dowolnego widzimisię, to musisz l.p. przechowywać i modyfikować w bazie.
artur
h5k - 14-11-2006 00:56
keczerad napisał(a): > zeby cos zproponowac i to cos oryginalnego trzeba wiedziec do czego to > ma sluzyc
LP... takie proste zagadnienie wydawać by się mogło, Ty jednak potrzebujesz wiedzieć do czego służy liczba porządkowa... :) Zbieraj szybko na tą szklaną kulę, wtedy wystarczy że będziesz tylko czytał i już będziesz wszystko wiedział, teraz musisz czytać ze zrozumieniem co jak widać sprawia Ci trochę kłopotów
Michał Kuratczyk - 14-11-2006 00:56
h5k wrote: > LP... takie proste zagadnienie wydawać by się mogło, Ty jednak > potrzebujesz wiedzieć do czego służy liczba porządkowa... :) > Zbieraj szybko na tą szklaną kulę, wtedy wystarczy że będziesz > tylko czytał i już będziesz wszystko wiedział, teraz musisz czytać > ze zrozumieniem co jak widać sprawia Ci trochę kłopotów Zrozum, że świat jest trochę bardziej skomplikowany niż się Tobie wydaje. Te same rzeczy dla różnych ludzi znaczą co innego. Te same problemy, w zależności od różnych okoliczności, rozwiązuje się inaczej. Jeśli prosisz kogoś o pomoc, a on nie znając Twojej sytuacji po prostu Ci odpowiada, to możesz być pewien, że albo się nie zna na tym co mówi, albo odpowiada Ci na odwal się. Może i będzie miał rację, bo przecież zepsuty zegar też czasem dobrą godzinę pokazuje. Ale jeśli ktoś zadaje Ci pomocnicze pytania, żeby odpowiedzieć z sensem NA TWOJE PYTANIE, to powinieneś być wdzięczny, a nie zachowywać po chamsku.
-- Michał Kuratczyk
h5k - 14-11-2006 00:56
> Ale jeśli ktoś zadaje Ci pomocnicze pytania, żeby > odpowiedzieć z sensem NA TWOJE PYTANIE, to powinieneś być wdzięczny, a nie > zachowywać po chamsku. >
Nie mam pojęcia jak rozbić na atomy pojęcie "liczba porządkowa" i jak ktoś zadaje "pomocnicze" pytania do tak banalnej rzeczy to n/c. Lepiej chyba w ogóle nie odpisywać jak prezentować postawę człowieka który zjadł wszystkie rozumy, jakbym napisał coś o kolumnie "samochod" to by mnie przekonywał pewnie, a dlaczego nie "kaktus" ? :) Potrzebowałem mieć pole z czymś takim w tabeli i święto, przecież nie będę się tu rozwodził i pisał postu na trzy ekrany tłumacząc po co mi to.
Michał Kuratczyk - 14-11-2006 00:56
h5k wrote: > Nie mam pojęcia jak rozbić na atomy pojęcie "liczba porządkowa" i > jak ktoś zadaje "pomocnicze" pytania do tak banalnej rzeczy to n/c. "metalowa rurka" też jest bardzo prostym pojęciem/przedmiotem, ale spróbuj wyciągnąć z kogoś znającego się na metalowych rurkach odpowiedź na pytanie "jaka metalowa rurka jest najlepsza"... JEDYNA dobra odpowiedź na takie pytanie, to "zależy do czego jej potrzebujesz". Jeżeli prezentujesz postawę "nie interesuj się po co mi ta rurka, tylko powiedz jaka jest najlepsza", to nie licz na sensowną pomoc. Nawet jeśli powiesz, że to ma być metalowa rurka do silnika corvetty z 1977 roku, to nadal każdy fachowiec zapyta Cię do czego DOKŁADNIE jest Ci ona potrzebna, bo może się okazać, że Twój problem najlepiej rozwiązać rurką gumową na ten przykład. A fachowiec od tuningu takich silników może Ci nawet powie, że lepiej nie wsadzać tam tej rurki, tylko zupełnie inaczej połączyć elementy między którymi ona była.
Na pocieszenie powiem Ci tylko, że nie jesteś jedyny, któremy wydaje się, że na każde pytanie istnieje prosta odpowiedź. Przeczytaj sobie: http://tkyte.blogspot.com/2006/07/i-...-only-two.html
-- Michał Kuratczyk
keczerad - 14-11-2006 00:57
h5k napisał(a):
> LP... takie proste zagadnienie wydawać by się mogło, Ty jednak > potrzebujesz wiedzieć do czego służy liczba porządkowa... :) > Zbieraj szybko na tą szklaną kulę, wtedy wystarczy że będziesz > tylko czytał i już będziesz wszystko wiedział, teraz musisz czytać > ze zrozumieniem co jak widać sprawia Ci trochę kłopotów >
k..., w pracy mam takiego, tfu... wizjonera, za kazdym razem wydaje mu sie ze wszystko jest proste, bo on ma wizje, tylko od wizji do realizacji daleka droga ! Nauczony doswiadczeniem wole wypytac zanim zaczne robic, bo moze okazac sie ze trzeba obrac inna droge. Dlatego nie boje zadawac sie pytania, wole zadac 10 razy te same pytanie i 10 razy uslyszec ta sama odpowiedz niz zaczac robic co czego do konca sie nie rozumiem. Praktycznie zawsze przy rozwiazaniu jakiegos z natury prostego problemu spotyka sie po drodze 10 przypadków szczególnych i dwa mury, których przeskaczyć się nie da tylko trzeba obejść. Zakladajac do tego kogos niewielkie doswiadczenie (zadaje takie pytania ten ktos i nie pisze do czego to stosuje), zadaje pytania naprowadzajce jak to mowia w szkole :), a jesli ktos sie obruszy tak jak ty, robi to tylko na swoja niekorzysc jeszce tego nie rozumiejąc.
EOT
--
keczerad
http://www.e-mo.com.pl sklep w (X)HTML
Marcin - 14-11-2006 00:57
> "metalowa rurka" też jest bardzo prostym pojęciem/przedmiotem, ale spróbuj > wyciągnąć z kogoś znającego się na metalowych rurkach odpowiedź na > pytanie "jaka metalowa rurka jest najlepsza"... JEDYNA dobra odpowiedź na > takie pytanie, to "zależy do czego jej potrzebujesz".
Ale ja nie pytam o metalową rurkę tylko o liczbę porządkową, która zastosowanie ma bardzo powszechne, trzymanie czegoś w określonym porządku. Dyskusja jest już bezcelowa bo jak powiedziałem znalazłem rozwiązanie, wszystko jest cacy, miód, dziwki i orzeszki w jednym :) A Ty wypatruj kolejnych postów gdzie będziesz mógł stosować swoje wyszukane porównania i kwestionować to czy białe jest białe a czarne czy oby napewno nie jest zielone.
Sławomir Szyszło - 14-11-2006 00:57
Dnia Fri, 10 Nov 2006 09:59:39 +0100, "Artur Muszynski" <arturm@union.wytnijto.com.pl> wklepał(-a):
>Nie zastanowiłeś się. Jeśli klient chce uporządkować listę (np kategorie, >wiadomości) wg dowolnego widzimisię, to musisz l.p. przechowywać i >modyfikować w bazie.
Ale wtedy nie są istotne kolejne wartości "co 1", wystarczy że będą w określonym porządku. -- Sławomir Szyszło mailto:slaszysz@poczta.onet.pl Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/ Archiwum http://groups.google.com/groups?grou...mp.bazy-danych
Michał Kuratczyk - 14-11-2006 00:58
Marcin wrote: > o liczbę porządkową, która zastosowanie ma bardzo powszechne, trzymanie > czegoś w określonym porządku. Mylisz się, ale to Twój problem.
> Dyskusja jest już bezcelowa bo jak powiedziałem znalazłem rozwiązanie, > wszystko jest cacy, miód, dziwki i orzeszki w jednym :) Biorąc pod uwagę Twoje doświadczenie z bazami danych, to tak śmiałe stwierdzanie "w moim kodzie nie ma błędów" jest bardzo ryzykowne. Więc pewnie kiedyś się zdziwisz, że Ci się dane rozjechały, ale to Twój problem.
> A Ty wypatruj kolejnych postów gdzie będziesz mógł stosować swoje > wyszukane porównania i kwestionować to czy białe jest białe a czarne czy > oby napewno nie jest zielone. A prezentując takie podejście do ludzi, którzy próbują Ci pomóc, to raczej wiele na tej grupie nie osiągniesc. Ale to już Twój problem. EOT.
-- Michał Kuratczyk
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
zanotowane.pldoc.pisz.plpdf.pisz.pltejsza.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|