我正在查看Core Data生成的sqlite表,并注意到所有表列均以“ Z”开头。我意识到这是一个实现细节,但是我很好奇为什么会这样,以及是否涉及设计决策。任何人碰巧知道或猜测为什么?
这是Core Data sqlite数据库的示例架构输出:
sqlite> .schema 创建表ZPOST(Z_PK整数主键,Z_ENT整数,Z_OPT整数,ZPOSTID整数,ZUSER整数,ZCREATEDAT TIMESTAMP,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); 创建表Z_PRIMARYKEY(Z_ENT INTEGER主键,Z_NAME VARCHAR,Z_SUPER INTEGER,Z_MAX INTEGER);
我确实不知道在这种特定情况下的原因,但是在具有共同目的的数据库表中添加特殊的前缀以方便参考并避免其他表(例如,用户和zUser)的冲突并不少见。
—
NoChance 2012年
可能是因为这样很容易发现它们。苹果公司非常清楚,除核心数据外,切勿编辑任何其他内容。然后为所有Core Data表选择一些不寻常的前缀就很有意义了,这样就很容易知道何时查看Core Data表。
—
Caleb
也许它是由前SAP顾问设计的?
—
菲利普
@Philipp可能有一点,尽管我笑了最初的建议。在SAP中,将Z添加到自定义表中以确保与SAP内部表不冲突。可能会发生同样的情况:CoreData在为您的实体创建的表的前面添加了一个Z,以确保与其内部的任何内容都不会发生表冲突。
—
jmstone 2012年
在我的本地开发人员数据库中,我为测试表添加了Z前缀,因此它们按字母顺序排列在列表的底部。完成后可以更轻松地将它们一起查看和删除。
—
mike30