Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Zmiana id po usunięciu wpisu
Forum PHP.pl > Forum > PHP
klex234
Robię mini-CMS-a. Ma on już funkcję edytowania wpisów, usuwania i dodawania. Kiedy go testowałem zrobiłem kilka wpisów a potem kilka usunąłem. Zauważyłem, że w bazie id jest nie po kolei czyli: 2,5,6,7,8,10. Jak zrobić żeby po usunięciu wpisu id były po kolei?
pedro84
1. Tak ma być.
2. Jakiś sensowny argument za?
Volume
Pomyśl... że bardzo dobrze, że id jest indywidualne - wyobraz sobie taka sytuacje, ze stosujesz id w adresach. Jeśli napisał bys skrypt, w którym po usunieciu rekordu id by sie restrtowaly to automatycznie zmienialy by Ci sie czasem nawet wszystkie adresy i co wtedy? Jeśli komuś wcześniej wysłałeś linka do danego rekordu moze on mieć już inną zawartość.
wNogachSpisz
Najlepiej to w ogóle nie usuwać. Lepiej wygospodarować kolumne status, gdzie np. 0 będzie informowało o usunięciu wpisu.
greycoffey
Cytat(wNogachSpisz @ 5.05.2012, 11:33:00 ) *
Najlepiej to w ogóle nie usuwać. Lepiej wygospodarować kolumne status, gdzie np. 0 będzie informowało o usunięciu wpisu.

Zależy od sytuacji, jak w tabeli będą spamkomentarze, to nie będę ich przechowywał z status=0.
Wtedy można pokusić się o "Przenies do kosza" i "Usuń", w tym, że status będzie timestampem przeniesienia do kosza, a codzień bedzie się uruchamiał garbage collector usuwający wpisy starsze niż 30 dni (tak działa np. folder Spam w gmailu).
wNogachSpisz
Z doświadczenia wiem że lepiej zostawić wpis. Potem są problemy jak chcesz sporządzić statystykę, brak rekordu to informacja utracona.

Cytat(greycoffey @ 6.05.2012, 11:52:09 ) *
jak w tabeli będą spamkomentarze, to nie będę ich przechowywał z status=0.

Tym bardziej powinieneś je pozostawic. Dzieki temu możesz ustalic kto ile i w jakim czasie wyslal komentarzy i na tej postawie zapodać bana...
!*!
Cytat(greycoffey @ 6.05.2012, 11:52:09 ) *
Zależy od sytuacji, jak w tabeli będą spamkomentarze, to nie będę ich przechowywał z status=0.
Wtedy można pokusić się o "Przenies do kosza" i "Usuń", w tym, że status będzie timestampem przeniesienia do kosza, a codzień bedzie się uruchamiał garbage collector usuwający wpisy starsze niż 30 dni (tak działa np. folder Spam w gmailu).


Oczywiście do "kosza" bo jak to serwis ogólnie dostępny, dane od użytkowników musisz przechowywać ileś tam miesięcy w myśl ustawie o danych osobowych, więc taki "spam" nie zawsze może być usuwany od razu.
wNogachSpisz
Ale zmiana statusu to właśnie "przeniesienie do kosza" na poziomie bazy. Co za różnica jak to będzie wygladac z poziomu interfejsu uzytkownika O_o.
Myślałem że to oczywiste. Jak zwykle do rozmowy przyłączają się ludzie którzy w życiu nie zaprojektowali bazy danych.
!*!
Jeśli Ty trzymasz dane ze statusem 0 cały czas w tej samej bazie/tabeli, to współczuję.
pedro84
Cytat(!*! @ 6.05.2012, 15:44:04 ) *
Jeśli Ty trzymasz dane ze statusem 0 cały czas w tej samej bazie/tabeli, to współczuję.

Wszystko jednak zależy od tego, co to za dane smile.gif
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.