[RUBY-ON-RAILS] destroy_all 대 DELETE_ALL?
RUBY-ON-RAILSdestroy_all 대 DELETE_ALL?
나는 테이블에서 삭제 기록에 가장 좋은 방법을 찾고 있어요. 예를 들어, 나는 누구의 사용자 ID 여러 테이블에 걸쳐있는 사용자가 있습니다. 나는이 사용자와 모든 테이블에서 자신의 ID가 모든 레코드를 삭제합니다.
u = User.find_by_name('JohnBoy')
u.usage_indexes.destroy_all
u.sources.destroy_all
u.user_stats.destroy_all
u.delete
내가 DELETE_ALL 시도 그래서이 작품과 모든 테이블에서 사용자의 모든 참조를 제거하지만 나는 그 destroy_all들은 매우 공정 무거웠다. 그것은 단지 자신의 사용자 테이블에서 사용자와 다른 테이블이 null을 만들어 모두에서 ID를 제거하지만 잎 기록 그들에 그대로. 캔 누군가 점유율 어떤 올바른 프로세스는이 같은 작업을 수행하기위한인가?
그 destroy_all이 (가) 모든 관련 개체에 대한 기능을 파괴하지만, 난 그냥 올바른 방법을 확인하려면 호출을 참조하십시오.
해결법
-
==============================
1.당신이 옳아 요. 당신은 사용자와 연관된 모든 객체를 삭제하려면 -> destroy_all 그러나, 당신은 단지 연관된 모든 객체를 억제하지 않고 사용자를 삭제하려면 -> DELETE_ALL
당신이 옳아 요. 당신은 사용자와 연관된 모든 객체를 삭제하려면 -> destroy_all 그러나, 당신은 단지 연관된 모든 객체를 억제하지 않고 사용자를 삭제하려면 -> DELETE_ALL
이 게시물에 따르면 : 레일 : 의존 => VS 파괴 : 의존 => : DELETE_ALL를
-
==============================
2.DELETE_ALL은 단일 SQL DELETE 문 아무것도 더있다. (있을 경우) 적어도 NUM_OF_RESULTS SQL 문이 될 수있는 조건 : destroy_all 통화의 일치하는 모든 결과 ()를 파괴한다.
DELETE_ALL은 단일 SQL DELETE 문 아무것도 더있다. (있을 경우) 적어도 NUM_OF_RESULTS SQL 문이 될 수있는 조건 : destroy_all 통화의 일치하는 모든 결과 ()를 파괴한다.
용량이 큰 데이터 세트에 같은 destroy_all 등 () 과감한 무언가를해야한다면, 나는 아마 응용 프로그램에서하지 및 관리에 수동으로 처리 할 것입니다. 데이터 세트가 작은 정도 인 경우가 많이 다치게하지 않을 것입니다.
-
==============================
3.destroy_all가 모든 레코드를 인스턴스화하고 한 번에 하나씩 파괴한다는 사실을 방지하기 위해, 당신은 모델 클래스에서 직접 사용할 수 있습니다.
destroy_all가 모든 레코드를 인스턴스화하고 한 번에 하나씩 파괴한다는 사실을 방지하기 위해, 당신은 모델 클래스에서 직접 사용할 수 있습니다.
그래서 대신 :
u = User.find_by_name('JohnBoy') u.usage_indexes.destroy_all
넌 할 수있어 :
u = User.find_by_name('JohnBoy') UsageIndex.destroy_all "user_id = #{u.id}"
결과는 모든 관련 기록을 파괴하는 하나 개의 쿼리입니다
-
==============================
4.나는 어떤 상황에서 수동으로 삭제 관련 기록에 대한 필요성을 완화 할 수있는 작은 보석을했습니다.
나는 어떤 상황에서 수동으로 삭제 관련 기록에 대한 필요성을 완화 할 수있는 작은 보석을했습니다.
from https://stackoverflow.com/questions/6698207/delete-all-vs-destroy-all by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 유증에 sign_in 행동에 대한 다른 레이아웃 (0) | 2020.02.27 |
---|---|
[RUBY-ON-RAILS] 여러 속성에 대한 고유성 3 검증 레일 (0) | 2020.02.27 |
[RUBY-ON-RAILS] 레일의 보호 및 개인 방법 (0) | 2020.02.27 |
[RUBY-ON-RAILS] 0보다 연관 이상의 수를 가진 모든 기록을 찾기 (0) | 2020.02.27 |
[RUBY-ON-RAILS] 어떻게 루비 클래스의 이름을받을 수 있나요? (0) | 2020.02.27 |