Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] czy da się uzupełnić usunięte rekordy
Forum PHP.pl > Forum > Przedszkole
lamcpp
Usuwam rekordy z bazy danych załóżmy o id=3, o id=5, id=7
Czy na ich miejsce mogę dodać nowe rekordy, które będą miały id równe id usuniętych rekordów?
Bo MySQL domyślnie dodaje dodaje rekordy o jeden większy od ostatniego, nie uzupełniając "dziur".
Pytanie czy mogę te powstałe dziury w bazie uzupełnić manualnie, bez żadnych konsekwencji (domyślam się że MySQL bez powodu nie zostawia puste id usuniętych rekordów bez nadpisywania ich nowymi wartościami)
nospor
Pytanie stare jak świat cały: PO CO?
Co ci przeszkdzają te dziury? ID to ID. Jak coś kiedyś miało ID 3, to nie może się nagle okazać, że pod ID 3 jest nagle coś innego.
Sephirus
Zawsze też możesz utrudnić sobie na siłę życie i nie używać autoincrement smile.gif Ale popieram mojego przedmówcę - w wielu przypadkach gdy jest duża złożoność relacyjna pomiędzy tabelami lepiej nie nadpisywać ID.
amii
Cytat(nospor @ 19.10.2011, 13:45:26 ) *
Pytanie stare jak świat cały: PO CO?
Co ci przeszkdzają te dziury? ID to ID. Jak coś kiedyś miało ID 3, to nie może się nagle okazać, że pod ID 3 jest nagle coś innego.


A gdy masz zapytanie SELECT costam FROM tabela WHERE id BETWEEN $start AND $koniec
Jeśli masz dziury w id to skrypt niepotrzebnie odwołuje się do pustych rekordów.
croc
Cytat(amii @ 19.10.2011, 15:31:29 ) *
A gdy masz zapytanie SELECT costam FROM tabela WHERE id BETWEEN $start AND $koniec
Jeśli masz dziury w id to skrypt niepotrzebnie odwołuje się do pustych rekordów.

amii - odnoszenie się do ID jak do wartości numerycznej jest nieprawidłowym myśleniem. ID powinno być totalnie niezależne od rekordu - jedyne co można zaakceptować to używanie ID do określenia kolejności dodania rekordów, choć i tutaj - gdy musimy znać chronologię - lepiej użyć osobnego pola datetime. Łatanie dziur ma jeszcze jedną wadę. Jeśli używamy ID w linkach (a większość ludzi używa), to wyszukiwarki będą prowadziły do nieprawidłowych wpisów.
nospor
Cytat
A gdy masz zapytanie SELECT costam FROM tabela WHERE id BETWEEN $start AND $koniec
Jeśli masz dziury w id to skrypt niepotrzebnie odwołuje się do pustych rekordów.
Eee? Do jakich pustych rekordów? Jest taka zasada: piłeś, nie postuj wink.gif

A już trochę bardziej poważnie:
może rozwiń swoją myśl, bo na chwilę obecną brzmi delikatnie rzecz mówiąc dziwnie.
lamcpp
Właściwie to pytam o jednorazowe uzupełnienie bazy.
Jeśli chodzi o wyszukiwarki - tu problemu nie ma, usunięte artykuły nie były wcześniej w internecie - poprostu baza została zaimportowana z localhosta.
Potrzebuje tego dla uporzadkowania swojej bazy: w tej chwili rekordy zaczynają się od 80, chciałbym by kazdy rekord był zajęty przez osobny artykuł.
nospor
Cytat
chciałbym by kazdy rekord był zajęty przez osobny artykuł.
No i jest, niezależnie od ID jaki ma.
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.