web-QQ(腾讯)-EMail-QQMsg(仿QQ短信)-数据库设计

专题图web-QQ(腾讯)-EMail-QQMsg(仿QQ短信)-数据库设计编号:ylbtechOpenSource

1,功能描述

 仿QQ短信(QQ邮箱里面的功能),登录,短息主界面,发信息,单个话题对话。

2,技术与环境

操作系统:

windows

开发语言:

C#

开发框架:

 

数据库:

SQLServer

开发软件:

Microsoft Visual Studio 2010

开发技术:

 ASP.net

项目组长:

yuanbo

成员:

null

个人主页:

http://www.cnblogs.com/ylbtech/

科研团队:

ylbtech

教研团队:

ylbtech

3,数据库设计
-- =============================================

-- ylb;仿QQ短信

-- development time:11:35 2012-04-18

-- =============================================

use master

go

IF EXISTS (SELECT * 

       FROM   master..sysdatabases 

       WHERE  name = N'QQMessage')

    DROP DATABASE QQMessage

GO



CREATE DATABASE QQMessage

GO



use QQMessage

go

-- =============================================

-- ylb;1,Users

-- remark:用户表

-- =============================================

create table Users

(

userId int primary key identity(100,1),    --编号[PK]

nickname varchar(200) not null,        --昵称

userpass varchar(200) not null,        --密码

headImage varchar(200),            --头像地址

username varchar(200),            --备注姓名

flag int default(0) check(flag in(0,1))    --标识,flag=1,说明此用户已注销,0:正常

)



go

-- =============================================

-- ylb;2,Note

-- remark:短信表

-- =============================================

create table Message

(

msgId int primary key identity(200,1),    --编号[PK]

toUserId varchar(200) not null,        --收信人编号[FK]

content varchar(500) not null,        --发新内容

pubdate datetime default(getdate()),    --发送时间

sendUserId int        --发送用户编号[FK]



)

-- =============================================

-- ylb;3,Friend

-- remark:好友表

-- =============================================

create table Friend

(

userId int not null,    --用户编号

friendId int not null    --用户好友编号



)



print '数据创建成功!'



-- =============================================

-- ylb;仿QQ短信

-- development time:11:35 2012-04-18

-- =============================================

use QQMessage



go

--InsertData

insert into Users(nickname,userpass,headImage) values('sunshine','m123','default.jpg')

insert into Users(nickname,userpass,headImage) values('rain','m123','default.jpg')

insert into Users(nickname,userpass,headImage) values('lanchong','m123','default.jpg')

insert into Users(nickname,userpass,headImage) values('sun','m123','default.jpg')



select * from Users





go

--修改备注

update Users set username='袁博' where userId=102

go

--登录

select count(*) from Users where userId=100 and userpass='m123'

go

--删除一组会话

delete Message where toUserId=100 and sendUserId=101 or toUserId=101 and sendUserId=100





go

--1,发送信息

--1,outBox

insert into Message(toUserId,content,sendUserId) values(100,'I is sunshie',101)

--2,inBox

insert into Message(toUserId,content,sendUserId) values(101,'Who are you?',100)



insert into Message(toUserId,content,sendUserId) values(100,'sunshie',101)





go

--2,我的收信列表

--2_1,List

select userId,nickname,headImage,username from Users

where userId in(select sendUserId from Message where toUserId=100) 

or userId in(select toUserId from Message where sendUserId=100)



go

--2_2,附属最近的一条短信

select top 1 msgId,toUserId,content,pubdate,sendUserId from Message 

where toUserId=100 and sendUserId=101 or toUserId=101 and sendUserId=100

order by msgId desc











--最新的回复

select top 1 content from Message where toUserId=101 and sendUserId=100

order by msgId desc



go

select userId,nickname,headImage,username from Users

where userId in(select sendUserId from Message where toUserId=100)



select userId,nickname,headImage,username,content from Users u left join Message m

on u.userId=m.toUserId





go

--3,单机看详细

select * from Users

select * from Message



go

--3_1,获取备注

select nickname from Users where userId=1



go

--3_2,获取列表

select * from Users u left join Message m

on u.userId=m.toUserId

go

--结论

select userId,nickname,headImage,username,msgId,content,pubdate,sendUserId from Users u 

left join Message m on u.userId=m.toUserId

where toUserId=100 and sendUserId=101 or toUserId=101 and sendUserId=100
4,功能截图

 4.1,前台

4.1.1  /SignIn.aspx

web-QQ(腾讯)-EMail-QQMsg(仿QQ短信)-数据库设计

web-QQ(腾讯)-EMail-QQMsg(仿QQ短信)-数据库设计

4.1.2  /Menu.aspx  短息主界面

web-QQ(腾讯)-EMail-QQMsg(仿QQ短信)-数据库设计

4.1.3  /Write.aspx  写短消息

web-QQ(腾讯)-EMail-QQMsg(仿QQ短信)-数据库设计

4.1.4  /Detail.aspx  单个对话组

web-QQ(腾讯)-EMail-QQMsg(仿QQ短信)-数据库设计

 

5,代码分析

 解决方案属性图

web-QQ(腾讯)-EMail-QQMsg(仿QQ短信)-数据库设计

5.1,前台

5.1.1  /Handler/SendMsg.ashx

<%@ WebHandler Language="C#" Class="SendMsg" %>



using System;

using System.Web;



public class SendMsg : IHttpHandler {

    

    public void ProcessRequest (HttpContext context) {

        context.Response.ContentType = "text/plain";



        //发送短信

        int toUserId = Convert.ToInt32(context.Request["toUserId"]);

        int sendUserId = Convert.ToInt32(context.Request["sendUserId"]);



        MessageInfo dal = new MessageInfo()

        {

            ToUserId = toUserId,

            SendUserId = sendUserId,

            Content = context.Server.UrlDecode(context.Request["content"])

        };



        //Call Fun

        int id= MessageOper.Add(dal);

        context.Response.Write(id+"");

    }

 

    public bool IsReusable {

        get {

            return false;

        }

    }



}

 5.2,后台

6,示例|讲解案例下载

博客园讲解:  http://ylbtech.cnblogs.com/

百度文库开发文档: http://passport.baidu.com/?business&aid=6&un=ylbtech#7

谷歌开源代码下载: http://code.google.com/p/ylbtechopensource/downloads/list

请单击“ver1.1 QQMessage”

warn 作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

最终目标

 代码的国际化标准示例 ylb,tech”,最大程度地规范软件编程开发统一,优质, 高效,易学,为建设软件强国(中国)而努力。

 

你可能感兴趣的:(email)