Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] czy da się uzupełnić usunięte rekordy
lamcpp
post
Post #1





Grupa: Zarejestrowani
Postów: 372
Pomógł: 2
Dołączył: 10.05.2009

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


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)

Ten post edytował lamcpp 19.10.2011, 12:44:39
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




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.
Go to the top of the page
+Quote Post
Sephirus
post
Post #3





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Zawsze też możesz utrudnić sobie na siłę życie i nie używać autoincrement (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post
amii
post
Post #4





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

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


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.
Go to the top of the page
+Quote Post
croc
post
Post #5





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


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.
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




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 (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post
lamcpp
post
Post #7





Grupa: Zarejestrowani
Postów: 372
Pomógł: 2
Dołączył: 10.05.2009

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


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ł.
Go to the top of the page
+Quote Post
nospor
post
Post #8





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




Cytat
chciałbym by kazdy rekord był zajęty przez osobny artykuł.
No i jest, niezależnie od ID jaki ma.
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: 1.10.2025 - 09:04