用python写1个简单的聊天服务器5-DB层处理

一直以来都很讨厌数据库,觉得数据库一直是我的噩梦。


最近开始考虑分层思想以后,了解ORM以后,觉得数据库其实没那么讨厌,没那么难。


于是开始设计字段。


用户

DROP TABLE IF EXISTS "user";
CREATE TABLE "user" (
	 "uid" integer NOT NULL,
	 "username" text(32,0) NOT NULL,
	 "password" text(32,0) NOT NULL,
	 "sex" integer NOT NULL DEFAULT 0,
	 "description" text(256,0),
	PRIMARY KEY("uid")
);



好友关系

DROP TABLE IF EXISTS "relationship";
CREATE TABLE "relationship" (
	 "rid" integer NOT NULL,
	 "user1id" integer NOT NULL,
	 "user2id" integer NOT NULL,
	PRIMARY KEY("rid")
);



离线聊天消息

CREATE TABLE "offlinemsg" (
	 "oid" integer NOT NULL,
	 "fromuserid" integer,
	 "touserid" integer NOT NULL,
	 "msg" text(1024,0) NOT NULL,
	 "last_date" date NOT NULL,
	PRIMARY KEY("oid")
);



离线添加好友请求

DROP TABLE IF EXISTS "offlineaddfriend";
CREATE TABLE "offlineaddfriend" (
	 "aid" integer NOT NULL,
	 "fromid" integer NOT NULL,
	 "toid" integer NOT NULL,
	 "msg" text(256,0) NOT NULL,
	 "lastdate" date NOT NULL,
	PRIMARY KEY("aid")
);


还有2张表就不发了。有了以上数据库搞定。

下面是ORM。

用到的是sqlalchemy。具体使用部分可以参考官方文档或这里



db设计好以后,就是db数据处理。为了保持业务的和DB层无关,所有关于DB的处理都存放到这里

设计1个DBEngine

用python写1个简单的聊天服务器5-DB层处理_第1张图片

你可能感兴趣的:(用python写1个简单的聊天服务器5-DB层处理)