sql >> データベース >  >> RDS >> Mysql

フォーラムソフトウェアは、モデレート時にトピック/投稿を文字通り削除する必要がありますか、それとも単に非表示にする必要がありますか?

    それはあなた次第であり、通常、削除するデータがどれほど重要であるか、または事故に対してどれだけ寛容になりたいかという問題です。

    私が使用したい方法は、削除したいアイテムのクローンデータベースを用意することです。削除時に、選択した行の内容を新しいデータベースにコピーしてから削除します。システムに余分な「削除された」記事やアイテムがあると、スペースを使い果たしてしまい、最終的にはクエリの速度が低下する可能性があります。

    「記事の削除」データベースがいっぱいになったら、ダンプ、アーカイブ、切り捨てを実行します。

    削除された投稿を保存するARTICLESというテーブルを持つデータベースCMSがあるとすると、同じテーブル構造を持つ同一のデータベースを作成します。

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

    コンテンツを削除するPHPスクリプトでは、次のようにします。

    //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. 行を重複させずに、3つのテーブルを結合し、2つのテーブルからフィールドの正しい合計を計算するにはどうすればよいですか?

    2. MySQLストアドプロシージャの操作'='の照合(utf8_general_ci、IMPLICIT)と(utf8_unicode_ci、IMPLICIT)の不正な組み合わせ

    3. postgres-既存のテーブルから*を選択します-psqlはテーブルが存在しないと言います

    4. Javaでパッケージレベルの連想配列を作成する