web-163(网易)-EMail(邮箱)-通讯录-数据库设计

简介:

专题图编号:ylbtechOpenSource

1,功能描述

 

2,技术与环境

操作系统:

windows

开发语言:

C#

开发框架:

 

数据库:

SQLServer

开发软件:

Microsoft Visual Studio 2010

开发技术:

 ASP.net

项目组长:

yuanbo

成员:

null

个人主页:

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

科研团队:

ylbtech

教研团队:

ylbtech

3,数据库设计
复制代码
use master
go
-- =============================================
-- 网易-同学录
-- development time:2011-7-11
-- =============================================
IF EXISTS (SELECT * 
       FROM   master..sysdatabases 
       WHERE  name = N'MsgBook')
    DROP DATABASE MsgBook
GO

CREATE DATABASE MsgBook
GO
use MsgBook
go
-- =============================================
-- 分组
-- =============================================
create table [Group]
(
GroupID int identity(1,1) primary key,    --编号
GroupName varchar(20) not null,        --组名
--[Count] int default(0)            --本组的人数
UserID int    --用户编号
)
--select * from [Group]
insert into [Group](GroupName,UserID) values('朋友',1000)
insert into [Group](GroupName,UserID) values('亲人',1000)
insert into [Group](GroupName,UserID) values('同事',1000)
insert into [Group](GroupName,UserID) values('网友',1000)
insert into [Group](GroupName,UserID) values('常用联系人',1000)

go
-- =============================================
-- 联系人
-- =============================================
create table Contact
(
ContactID int identity(1,1) primary key,--编号
ContactName varchar(20) not null,    --姓名
Email varchar(50),            --电子邮箱
Tel varchar(20),            --手机号码
[Year] char(4),                --生日_年    
[Month] char(2),                --生日_月
[Day] char(2),                --生日_日
GroupList varchar(20),            --所属组
Remark varchar(100),            --备注
--GroupID int foreign key references [Group](GroupID),--分组编号
UserID int                --用户编号
)
--select * from Contact
go
-- =============================================
-- 分组联系人
-- =============================================
--create table GroupContact
--(
--GroupID int not null references [Group](GroupID),    --分组编号
--ContactID int not null references Contact(ContactID),--联系人编号
--primary key(GroupID,ContactID)
--)
create table GroupContact
(
GroupID int not null,    --分组编号 GroupID=-1;即没分组
ContactID int not null,--联系人编号
UserID int not null    --用户账号
--primary key(UserID,ContactID)
)
select * from GroupContact;
go
insert into Contact(ContactName,UserID) values('yuanBo',1000);
insert into [GroupContact](GroupID,ContactID,UserID) values(1,1,1000);
insert into [GroupContact](GroupID,ContactID,UserID) values(2,1,1000);
insert into [GroupContact](GroupID,ContactID,UserID) values(4,1,1000);

go
insert into Contact(ContactName,UserID) values('xiaoYu',1000);
insert into [GroupContact](GroupID,ContactID,UserID) values(1,2,1000);
insert into [GroupContact](GroupID,ContactID,UserID) values(2,2,1000);
insert into [GroupContact](GroupID,ContactID,UserID) values(5,2,1000);
go
insert into Contact(ContactName,UserID) values('Tong',1000);
insert into [GroupContact](GroupID,ContactID,UserID) values(-1,3,1000);

select * from [Group] g
inner join GroupContact gc
on g.GroupID=gc.GroupID;



select g.GroupID,count(*) from [Group] g
inner join GroupContact gc
on g.GroupID=gc.GroupID
group by g.GroupID;

select count(*) from GroupContact where GroupID=1 and UserID=1

select * from Contact where ContactID in(select ContactID from GroupContact where UserID=1000)
复制代码
4,功能截图

 4.1,前台

  4.1.1

   4.1.2

  4.1.3

  4.1.4

  4.1.5

5,代码分析

 解决方案属性图

5.1,前台

复选框提取

复制代码
//已选的分组集合
        IList<int> arrayList = new List<int>();

        
        for (int i = 0; i < cblGroupList.Items.Count; i++)
        {
            if (cblGroupList.Items[i].Selected)
            {
                if (cblGroupList.Items[i].Value != "0" || cblGroupList.Items[i].Value != "-1")
                {
                    arrayList.Add(Convert.ToInt32(cblGroupList.Items[i].Value));
                }
            }
        }
        if (arrayList.Count==0)
        {
            //如果没选分组,则默认为‘未分组’
            arrayList.Add(-1);
        }
复制代码

复选框数据回填

复制代码
 private bool GetExistsGroupID(IList<int> Array,int GroupID)
    {
        for (int i = 0; i < Array.Count; i++)
        {
            if (Array[i].Equals(GroupID))
            {
                return true;
            }
        }
        return false;
    }
    private void BindGroupList()
    {
        int userID = 1000;
        cblGroupList.DataSource = GroupOper.GetList(userID);
        cblGroupList.DataTextField = "GroupName";
        cblGroupList.DataValueField = "GroupID";
        cblGroupList.DataBind();

        //设默认
        //获取已选列表
        int contactID = Convert.ToInt32(Request["ContactID"]);
        IList<int> ContactIDSelectedList = GroupContactOper.GetNum(contactID);

        for (int i = 0; i < cblGroupList.Items.Count; i++)
        {
            int GroupID=Convert.ToInt32( cblGroupList.Items[i].Value);
            if (GetExistsGroupID(ContactIDSelectedList, GroupID))
            {
                cblGroupList.Items[i].Selected = true;
            }
        }

    }
复制代码

 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

请单击“ver_1.3网易-通信录”


本文转自ylbtech博客园博客,原文链接:http://www.cnblogs.com/ylbtech/archive/2012/09/04/2670444.html,如需转载请自行联系原作者

相关文章
|
21天前
|
缓存 NoSQL 关系型数据库
在Python Web开发过程中:数据库与缓存,MySQL和NoSQL数据库的主要差异是什么?
MySQL是关系型DB,依赖预定义的表格结构,适合结构化数据和复杂查询,但扩展性有限。NoSQL提供灵活的非结构化数据存储(如JSON),无统一查询语言,但能横向扩展,适用于大规模、高并发场景。选择取决于应用需求和扩展策略。
112 1
|
5月前
|
SQL 关系型数据库 MySQL
GO web 开发 实战三,数据库预处理
GO web 开发 实战三,数据库预处理
|
3月前
|
前端开发 数据库 Python
使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
【1月更文挑战第13天】使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
80 7
|
4月前
|
SQL 数据库 开发者
Python Web 开发: 什么是 Django ORM?如何使用它进行数据库操作?
Python Web 开发: 什么是 Django ORM?如何使用它进行数据库操作?
|
1月前
|
NoSQL 关系型数据库 Linux
Star 1.6k!当Web遇上Linux和数据库!一站式管理平台的开源之旅!
Star 1.6k!当Web遇上Linux和数据库!一站式管理平台的开源之旅!
|
2月前
|
SQL 监控 Java
Java Web应用中数据库连接池的配置与优化
Java Web应用中数据库连接池的配置与优化
|
3月前
|
前端开发 JavaScript Java
基于spring+jsp+mysql实现的Java web论坛系统【源码+数据库+指导运行】
基于spring+jsp+mysql实现的Java web论坛系统【源码+数据库+指导运行】
|
4月前
|
关系型数据库 MySQL 数据库
Web 框架 Flask 快速入门(三)数据库-MySQL
数据库 1、数据库的安装与配置 这节用到flask的两个扩展,使用pip安装扩展就行
61 0
|
4月前
|
监控 前端开发 应用服务中间件
Zabbix【部署 01】Zabbix企业级分布式监控系统部署配置使用实例(在线安装及问题处理)程序安装+数据库初始+前端配置+服务启动+Web登录
Zabbix【部署 01】Zabbix企业级分布式监控系统部署配置使用实例(在线安装及问题处理)程序安装+数据库初始+前端配置+服务启动+Web登录
411 0
|
4月前
|
算法 关系型数据库 API
Python【算法中心 02】Web框架Django管理页面使用(管理员账号创建+API使用+应用添加)GreenPlum数据库引擎及API测试
Python【算法中心 02】Web框架Django管理页面使用(管理员账号创建+API使用+应用添加)GreenPlum数据库引擎及API测试
42 0