我正在寻找 iOS 上的键值存储数据库。应该是基于sqlite的,所以YapDatabase似乎是个不错的选择。
但我发现 YapDatabase 只使用一个表,引用“主数据库表名为“数据库” ”:CREATE TABLE "database2" ("rowid" INTEGER PRIMARY KEY, "collection" CHAR NOT NULL, "key" CHAR NOT NULL, "data" BLOB, "metadata" BLOB )
。所以我担心将不同类型的对象存储到同一列中。
例如,我计划将 YapDatabase 用于我的聊天应用程序,将每条消息存储到|collection|key|object|metadata|
. 每条消息都有一个唯一的id,作为key,消息内容一般是nstring,作为object,timestamp和其他一些数据作为元数据。就像 YapDatase 作者在这里回答一样。
有时会发送图片。图像很小,通常大约几百 kb,我不想将它们存储为文件,我相信将它们存储为 blob 是合适的。
但是,如果我使用 YapDatabse,它们将存储在与我通常的文本消息相同的表中。那我怎么能做一些查询,比如找到我所有的短信?
我的担忧是否有效(将不同类型的对象存储到同一列中)?我需要将它们存储在单独的表格中吗?如果是,如何?如果没有,我如何轻松找到我所有的短信?