Core Data가 생성하는 sqlite 테이블을보고 모든 테이블 열이 'Z'로 시작하는 것을 알았습니다. 나는 이것이 구현 세부 사항이라는 것을 알고 있지만 이것이 왜 그런지, 그리고 이와 관련된 디자인 결정이 있는지 궁금합니다. 왜 그런지 아는 사람이 있습니까?
다음은 Core Data sqlite 데이터베이스의 샘플 스키마 출력입니다.
sqlite> .schema 테이블 ZPOST 작성 (Z_PK 정수 기본 키, Z_ENT 정수, Z_OPT 정수, ZPOSTID 정수, ZUSER 정수, ZCREATEDAT 타임 스탬프, ZTEXT VARCHAR); 테이블 ZUSER 작성 (Z_PK 정수 기본 키, Z_ENT 정수, Z_OPT 정수, ZUSERID 정수, ZAVATARIMAGEURLSTRING VARCHAR, ZUSERNAME VARCHAR); 테이블 Z_METADATA 작성 (Z_VERSION 정수 정수 키, Z_UUID VARCHAR (255), Z_PLIST BLOB); CREATE TABLE Z_PRIMARYKEY (Z_ENT 정수 기본 키, Z_NAME VARCHAR, Z_SUPER INTEGER, Z_MAX INTEGER);
나는이 특정한 경우에 그 이유에 대해 전혀 모른다. 그러나 공통의 목적을 제공하는 데이터베이스 테이블이 쉽게 참조 할 수 있도록 특별한 접두어를 접두어로 붙이고 다른 테이블 (예 : user 및 zUser)의 충돌을 피하는 것은 드문 일이 아니다.
—
NoChance
아마 쉽게 알아볼 수 있습니다. Apple은 Core Data 이외의 다른 것으로 Core Data 테이블을 편집해서는 안된다는 것을 분명히 알고 있습니다. 그런 다음 모든 Core Data 테이블에 대해 특이한 접두사를 선택하면 Core Data 테이블을 볼 때 쉽게 알 수 있습니다.
—
Caleb
아마도 이전 SAP 컨설턴트가 설계했을까요?
—
Philipp
@Philipp은 초기 제안을 비웃었지만 요점이있을 수 있습니다. SAP에서는 SAP 내부 테이블과 충돌하지 않도록 Z를 사용자 정의 테이블에 추가합니다. CoreData는 엔티티에 대해 작성된 테이블 앞에 Z를 추가하여 내부 항목과 테이블 충돌이 없는지 확인합니다.
—
jmstone
내 로컬 dev 데이터베이스에서 테스트 테이블 앞에 Z를 붙여서 목록의 맨 아래에 알파벳순으로 정렬합니다. 완료되면 더 쉽게 함께보고 삭제할 수 있습니다.
—
mike30