2

マルチユーザーアプリケーションを作成しています。phpcodeigniterを使用して作成されました。ユーザーが他のユーザーデータを変更/削除できないようにするためのベストプラクティスまたはベスト方法を探しています。

いくつかのリレーショナルテーブルがあります。

  1. tbl_users(user_id、user_name、password)
  2. tbl_stores(store_id、user_id、store_name、store_url)
  3. tbs_products(product_id、store_id、product_name)

各ユーザーには独自のストアがあり、各ストアには多くの製品がある場合があります。

では、ユーザーが他のユーザーデータを削除しないようにするための最良の方法は何ですか?

私は実際にモデルにいくつかのコードを作成しましたが、私は一種の初心者なので、これが正しい方法であるかどうかはわかりません。私のコードは次のようになります。

function remove_product($product_id)
{
    $this->db->from('products as p');
    $this->db->join('stores as s', 's.id = p.store_id');
    $this->db->where('p.id', $product_id);
    $this->db->where('s.user_id', $this->session->userdata('id'));

    if($this->db->count_all_results())
    {
        $this->db->where('id', $product_id);
        return $this->db->delete($this->table);
    }
}

このアプローチが正しいかどうか、またはこれを行うためのより良い方法があるかどうかを教えてください。

よろしく

4

1 に答える 1

1

何かを削除する前に、その所有者がセッションユーザーと同じであるかどうかを確認してください。

于 2011-05-21T01:26:22.227 に答える