![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 706 Pomógł: 108 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 08:43 |