Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Kasowanie rekordów
Forum PHP.pl > Forum > Przedszkole
php__amator
Witajcie przedszkolaki wink.gif

Mam dzisiaj kolejna serie byc moze idiotycznych pytan ale jak dotad nie znalazlem nigdzie odpowiedzi na nie.

Co z tym zrobic. Mianowicie, kasuje rekord i .... pozostaje 'dziura' ktora troche mi przeszkadza.
Jak spowodowac przesuniecie rekordow aby ja zalatac a co za tym idzie jesli przesuna sie rekordy.
Automat nadajac kolejne numery nowym wpisom tez musi byc o tym poinformowany zeby nastepny dopisany znowu nie spowodowal kolejnej 'dziury'.

Podczas odczytu z bazy w sumie moglbym warunkowo pozwalac lub nie na wyswietlanie zawartosci, Jesli np rekord jest pusty pomin - tylko jak powinien wygladac taki warunek ?

Jest na to jakis patent ?

Pozdrawiam
Damonsson
Gdzie ta dziura? W ogródku u Ciebie?

Chodzi Ci o auto inkrementacje w bazie danych?
W jaki sposób przeszkadza?
klima06
Jeśli chodzi Ci o auto_increment to niestety musisz się przyzwyczaić, że nie zawsze pole te będzie ładnie wyglądało. To normalna sprawa, że niektóre ID zostają niewykorzystane. Przy pobieraniu danych z bazy nie musisz się przejmować, bo jeśli rekord usunąłeś poprawnie to po prostu on Ci się nie wyświetli, a ID zostanie pominięte np [1, 2, 4, 5, 8].

Jeśli rekord usuwasz poprawnie, to nie masz czym się przejmować i żadne "dziury" nie powstają.

Jeszcze dla pewności zapytam się jak usuwasz rekordy, bo w tym dziale wszystko jest możliwe? tongue.gif
SmokAnalog
Cytat(klima06 @ 22.10.2013, 18:56:42 ) *
Jeśli rekord usuwasz poprawnie, to nie masz czym się przejmować i żadne "dziury" nie powstają.

To nie jest prawda, dziury zawsze powstają w polach typu auto increment, sposób usuwania rekordów nie ma tu najmniejszego znaczenia. Te dziury mają sens, choć na początku mojej przygody z MySQL też miałem ochotę je łatać.

Moja rada jest taka: jeśli rzeczywiście potrzebujesz numerowania rekordów bez dziur, to stwórz do tego osobną kolumnę. Niech klucz ma sobie auto increment. W dobrze zaprojektowanej bazie danych, klucz nie ma żadnej wartości informacyjnej, jest niezależnym polem służącym tylko do łączenia rekordów z innymi rekordami.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.