hachinoBlog

hachinobuのエンジニアライフ

CoreDataで生成されるsqliteファイルについて

CoreDataを使用してsqliteファイルを生成すると自分で定義したカラムの他に
Z_PK,Z_ENT,Z_OPTという3つのカラムがシステムに自動で生成されている。
iPhoneアプリだけでなくAndroidアプリでも同じsqliteファイルを使いたかったのでこれについて調べた。
まず、Z_PKは言わずもがなPrimary Keyである。
Z_ENTカラムに関しては、システムでsqliteファイルが生成される際にZ_PRIMARYKEYというテーブルを生成している。
このテーブルには各テーブルの名前と一意となるID番号が振られている。
このID番号がZ_ENTカラムに格納されている。
(同テーブル内では全て同じID番号が振られている)
Z_OPTは、そのレコードに何回変更が加えられたか?ということらしいが定かではない。

上記のことを考慮してAndroidでのテーブル設定の際にはZ_PK,Z_ENT,Z_OPTを追加してあげること。
ちなみにシステムでsqliteファイルが生成される際にZ_METADATAというテーブルも生成されている。
このテーブルがないとCoreDataでは動かないので、このテーブルも生成してあげること。
システムで生成した際にデータが入っているが、このデータは削除しても大丈夫。
iOSでビルドした際に自動的にデータが挿入されるため。