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://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
最终目标 |
“代码的国际化标准示例 ylb,tech”,最大程度地规范软件编程开发统一,优质, 高效,易学,为建设软件强国(中国)而努力。