Miękkie usuwać + zadanie crona polecamy:
Nie polecam całkowicie usunięcie zapisów z wyjątkiem trzeba jak np prywatności danych
Jednak, jak już wspomniano, należy dodać do każdej tabeli kolumnę, taką jak deleted
, a kiedy rekord ma zostać usunięty, należy ustawić wartość w tej kolumnie na wartość true.
Po tym można rozwinąć cronjob, który zostanie uruchomiony. Na przykład. codziennie w bazie podczas północy.
Cronjob zwykle będzie wykonywany na powłoce i nie ma tak krótkiego czasu, jak przeglądarka.
W twoim przypadku: nie usunąć wszystkie dane, gdy zdjęcie zostało usunięte:
Kiedy masz do czynienia z zaledwie kilku zapisów jest legit, aby usunąć wszystkie rekordy w pełni, gdy użytkownik chce je usunąć .
Jednak w twoim przypadku istnieje prawdopodobnie tysiące rekordów, które należy usunąć. Tak więc, gdy spróbujesz usunąć wszystkie z nich, gdy użytkownik usunie określony obraz, to na pewno wymaga czasu i prawdopodobnie kończy się z upływem czasu. Robienie tego przez ajax nie jest dobre, ponieważ użytkownicy nie chcą czekać, aż wszystkie żądania ajax-owe zostaną zakończone.
Jeśli masz obce ograniczenia klucza, możesz [USUNĄĆ KASKADĘ] (http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html): ale niezależnie od to, upewnij się, że masz przyzwoite indeksowanie i że masowe usuwanie nie powinno być poważnym problemem –
Co powiesz na [mysql create event] (https://dev.mysql.com/doc/refman/5.1/en/create-event .html). Ustaw flagę. wydarzenie to podnosi (wybierasz interwał). Wbudowana funkcja crona. Coś jak [to] (http://stackoverflow.com/a/32193862), które napisałem. W twoim przypadku twoje instrukcje usunięcia wystąpiłyby z kaskadowaniem lub bez w zależności od konfiguracji – Drew
Po prostu oznaczę ten wpis jako usunięty i ustawię zadanie cron do czyszczenia wszystkich podobnych spraw do wszystkich usuniętych wpisów. – Berriel