一直以来都很讨厌数据库,觉得数据库一直是我的噩梦。
最近开始考虑分层思想以后,了解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

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

被折叠的 条评论
为什么被折叠?



