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

本文介绍了作者从讨厌数据库到理解并应用数据库的过程,通过具体的表结构设计实例分享了数据库设计经验,并引入ORM概念及SQLAlchemy的使用方法。

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


最近开始考虑分层思想以后,了解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


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值