Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy oprogramowanie forum powinno dosłownie USUWAĆ tematy/posty po moderacji, czy po prostu ukrywać?

To zależy od Ciebie i zazwyczaj zależy to od tego, jak ważne są dane, które usuwasz, lub na ile chcesz być tolerancyjny w przypadku wypadków.

Metoda, której lubię używać, to posiadanie bazy danych klonów dla elementów, które chcesz usunąć. Po usunięciu skopiuj zawartość wybranego wiersza do nowej bazy danych, a następnie usuń. Posiadanie dodatkowych „usuniętych” artykułów lub elementów w systemie po prostu zajmuje więcej miejsca i ostatecznie spowolni zapytania (potencjalnie).

Po zapełnieniu bazy danych „usuń artykuły” uruchom zrzut, zarchiwizuj, skróć.

Załóżmy, że masz bazę danych CMS z tabelą o nazwie ARTICLES, w której chcesz przechowywać usunięte posty, utworzymy identyczną bazę danych o tej samej strukturze tabeli:

CREATE DATABASE `deleted`;
CREATE TABLE deleted.cmsarticles LIKE CMS.ARTICLES;

W swoim skrypcie PHP, który usuwa zawartość, zrobiłbyś coś takiego:

//GRAB THE ID OF THE ARTICLE YOU ARE DELETING, MAKE SURE TO SANITIZE!
$article_id=$_POST['id'];
if(is_numeric($article_id) {
    $dbconnect=databaseFunction();
    $result=$dbconnect->query("SELECT `row1`,`row2` FROM `ARTICLES` WHERE `id`=$article_id");
    if($result->num_rows!=0) {
        $row=$result->fetch_array(MYSQLI_ASSOC);
        //Open new connection to deleted database
        $dbconnect2=otherDBFunction();
        $dbconnect2->query("INSERT INTO `cmsarticles`(row1,row2) VALUES ({$row['row1']},{$row['row2']}");
        $dbconnect->query("DELETE FROM `ARTICLES` where `id`={$_POST['id']}");
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql Nie można było nawiązać połączenia, ponieważ maszyna docelowa aktywnie je odrzuciła

  2. $PATH nie jest zapisywany po wyjściu z terminala

  3. Zapytanie MySQL :Dopasuj wartość oddzieloną przecinkami z kolumną zawierającą ciąg oddzielony przecinkami

  4. Funkcja wywołania MySqlCommand

  5. Różnica w miesiącach między datami w MySQL