數(shù)據(jù)庫(kù)名稱位置
沙盒下邊的Documents
下搔确,有些以RongIMDemoDB
開(kāi)頭的文件竟秫。命名方式是RongIMDemoDB
+userid
NSString *dbPath = [documentDirectory
stringByAppendingPathComponent:
[NSString stringWithFormat:@"RongIMDemoDB%@",
[RCIMClient sharedRCIMClient]
.currentUserInfo.userId]];
數(shù)據(jù)庫(kù)表
共5個(gè)表娃惯,分別是BLACKTABLE
,GROUPMEMBERTABLE
,USERTABLE
,FRIENDSTABLE
,GROUPTABLEV2
sqlite> .tables
BLACKTABLE GROUPMEMBERTABLE USERTABLE
FRIENDSTABLE GROUPTABLEV2
表結(jié)構(gòu)
BLACKTABLE
表
sqlite> .schema BLACKTABLE
CREATE TABLE BLACKTABLE (id integer PRIMARY KEY autoincrement, userid text,name text, portraitUri text);
CREATE UNIQUE INDEX idx_blackId ON BLACKTABLE(userid);
GROUPMEMBERTABLE
表
sqlite> .schema GROUPMEMBERTABLE
CREATE TABLE GROUPMEMBERTABLE (id integer PRIMARY KEY autoincrement, groupid text, userid text,name text, portraitUri text);
CREATE UNIQUE INDEX idx_groupmemberId ON GROUPMEMBERTABLE(groupid,userid);
USERTABLE
表
對(duì)應(yīng)RongIMLib
的RCUserInfo
類(lèi)
sqlite> .schema USERTABLE
CREATE TABLE USERTABLE (id integer PRIMARY KEY autoincrement, userid text,name text, portraitUri text);
CREATE UNIQUE INDEX idx_userid ON USERTABLE(userid);
FRIENDSTABLE
表
對(duì)應(yīng)RCloundMessage
的RCDUserInfo
類(lèi)
sqlite> .schema FRIENDSTABLE
CREATE TABLE FRIENDSTABLE (id integer PRIMARY KEY autoincrement, userid text,name text, portraitUri text, status text, updatedAt text, displayName text);
CREATE UNIQUE INDEX idx_friendsId ON FRIENDSTABLE(userid);
GROUPTABLEV2
表
對(duì)應(yīng)RCloundMessage
的RCDGroupInfo
類(lèi)
sqlite> .schema GROUPTABLEV2
CREATE TABLE GROUPTABLEV2 (id integer PRIMARY KEY autoincrement, groupId text,name text, portraitUri text,inNumber text,maxNumber text ,introduce text ,creatorId text,creatorTime text, isJoin text, isDismiss text);
CREATE UNIQUE INDEX idx_groupid ON GROUPTABLEV2(groupId);
數(shù)據(jù)庫(kù)操作
RCDataBaseManager
類(lèi)用來(lái)操作數(shù)據(jù)庫(kù)
使用queue
_dbQueue = [FMDatabaseQueue databaseQueueWithPath:dbPath];
插入操作是替換
insertUserToDB
使用的命令是REPLACE
insertGroupMemberToDB
使用先delete
后REPLACE