sql >> Database teknologi >  >> RDS >> Mysql

Skal forumsoftware bogstaveligt talt SLETTE emner/indlæg ved moderering eller blot skjule?

Det er op til dig og som regel et spørgsmål om, hvor vigtig er de data, du sletter, eller hvor tolerant du vil være over for ulykker.

Den metode, jeg kan lide at bruge, er at have en klondatabase for elementer, du ønsker at slette. Ved sletning skal du kopiere indholdet af den valgte række til en ny database og derefter slette. At have ekstra "slettede" artikler eller elementer i dit system bruger bare mere plads og vil i sidste ende bremse forespørgslerne (potentielt).

Når du har udfyldt din "slet artikler"-database, skal du køre en dump, arkivere, afkorte.

Lad os sige, at du har databasen CMS med en tabel kaldet ARTICLES, som du vil gemme slettede indlæg, vi vil oprette en identisk database med samme tabelstruktur:

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

I dit PHP-script, der sletter indholdet, ville du gøre noget som dette:

//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. ORACLE Efter opdateringstrigger:løser ORA-04091 mutationstabelfejl

  2. Nem CRUD-betjening med PDO-databaseforbindelse

  3. relation ikke fundet ved brug af Postgres i en Eclipse Hibernate-applikation

  4. Kald til en medlemsfunktion exec() på en ikke-objekt fejl i PHP