1

そのメディアでアルバムの階層データを削除する適切な方法は何でしょうか。

ループを開始して、すべてのサブアルバム ID を見つけて削除し、そのアルバム ID に属するすべてのメディアを削除するクエリを作成する必要があります。

データが大量にある場合、またはユーザーのアルバムが大量にある場合、これはクエリ実行の負荷になります。あなたのデバイスがこれにあるもの。

私のデータベース構造:

**album**
album_id
name
parent_id

**media**
media_id
album_id
name
4

1 に答える 1

0
DELETE 
  FROM albums,
       media
 WHERE media.albumID = albums.albumID
   AND (albums.parentID = ? or albums.albumID = ?)

データにトリガーまたはリレーションが定義されていない場合、これが最も簡単なアプローチです。特定のデータベース構造について詳しく知らなければ、より良い答えを出すのは困難です。ただし、他の状況と同様に、これを単一のSQLステートメントとして実行することをお勧めします。なんで?これにより、データの整合性が維持されます。そうしないと、ソフトウェアが特定のエントリを手動で削除するときに、さまざまなテーブルでロックを発行する必要があります(これも解決策ですが、詳細を知ることを除けば、お勧めしません)。

于 2010-02-02T23:12:50.683 に答える