правильный способ удалить альбом и его носители и вложенный альбом и его носители - PullRequest
1 голос
/ 03 февраля 2010

Какой будет правильный способ удаления альбомов иерархических данных с его носителя.

Должен ли я просто начать цикл и найти все идентификаторы вложенных альбомов, удалить их и выполнить запрос, чтобы удалить все медиафайлы, принадлежащие этому идентификатору альбома.

, который будет загружен при выполнении запроса, если данных много или альбомов много для пользователя.что ваше устройство на этом.

моя структура базы данных:

**album**
album_id
name
parent_id

**media**
media_id
album_id
name

1 Ответ

0 голосов
/ 03 февраля 2010
DELETE 
  FROM albums,
       media
 WHERE media.albumID = albums.albumID
   AND (albums.parentID = ? or albums.albumID = ?)

Это самый простой подход, при условии, что у вас нет триггеров или отношений, определенных в ваших данных. Не зная больше о вашей конкретной структуре базы данных, трудно дать лучший ответ; однако, как и в других ситуациях, вам лучше делать это как один SQL-оператор. Зачем? Это сохраняет вашу целостность данных, в противном случае вам придется создавать блокировки для различных таблиц, в то время как ваше программное обеспечение вручную удаляет определенные записи (что также является решением, но запрет на получение дополнительной информации, которую я бы не рекомендовал).

...