2011-03-17 5 views
2

1) 엔티티의 인덱스 속성을 클릭하면 데이터가 입력되고 인덱스를 입력 할 필요가 없으므로 해당 속성의 인덱스가 자동으로 생성됩니까 ??코어 데이터의 엔티티 인덱스에 대한 질문

2) 중간에서 항목이 제거 된 경우 (예 : 색인 없음 3), 새 색인은 0 1 2 4 5 6 .. 또는 0 1 2 3 4 5로 업데이트됩니다. ... ??

3) 행 ID 3을 (를) 사용하여 단일 항목을 제거하는 방법 ??

4) 어떤 ID로 기존 항목을 편집하는 방법 ??

thnx 미리;)

답변

4

1) 인덱싱은 코어 데이터에 의해 자동으로 처리됩니다. 너는 그걸로 아무 것도하지 않는다.

2) 잘 모릅니다. 핵심 데이터가 처리하므로 걱정하지 마십시오.

3) 그렇지 않습니다. 코어 데이터는 SQl에 대한 래퍼가 아니며 테이블과 행 자체와 관련이 없습니다. 핵심 데이터는 객체를 사용합니다. 개체 코어 데이터를 삭제하면 저장소에서 제거됩니다.

4) 특정 관리 대상 개체의 속성을 편집하여 데이터를 편집합니다.

핵심 데이터가 SQL이 아닙니다. 엔티티는 테이블이 아닙니다. 객체는 행이 아닙니다. 열은 특성이 아닙니다. 핵심 데이터는 객체 그래프 관리 시스템으로 객체 그래프를 유지할 수도 있고 유지하지 않을 수도 있으며 그렇게하기 위해 SQL을 사용할 수도 있고 사용하지 않을 수도 있습니다. 코어 데이터를 SQL 용어로 생각하면 코어 데이터를 완전히 오해하여 많은 슬픔과 시간 낭비를 초래할 수 있습니다.

+0

thnx는 – Zaraki

+0

입니다.이 CoreData는 SQL이 아니지만 나를 괴롭히는 오래된 트로피입니다. 예, SQL의 모든 기능을 제공하지는 않지만 대부분의 사람들은 SQL 백엔드를 사용하고 성능상의 문제가 발생하면 자연스럽게 볼 수 있습니다. 실제로 애플은 그렇게 생각한다. CoreData 성능 조정 섹션으로 이동하면 -com.apple.CoreData.SQLDebug 1을 설정하면 생성되는 SQL을 분석 할 수 있습니다. 그렇습니다. 결국 SQL입니다. –

4

색인을 생성 할 수있는 속성을 만드는 것은 성능 옵션입니다. 응용 프로그램에서 액세스 할 수있는 정렬 가능한 색인은 추가하지 않습니다. SQLite 저장소를 사용하는 경우 해당 속성을 검색하는 것이 더 빠릅니다.

관련 문제