项目经验-创新谈-张建伟

本文介绍了一个Web2.0概念的网络图片收藏夹项目,重点在于用户管理、图片管理和标签云图功能。详细描述了使用Mysql5和Java1.5进行数据库设计的过程,特别是针对Tag云图的设计思路和技术实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

复选阶段

1. 项目经验材料

        11 项目概况介绍:Web20概念类的网络图片收藏夹(同类网站:http://flickr.com/

具有以下几个功能:

1)用户的管理:包括与现有认证系统的连接

2)图片管理:对图片可以添加Tag,备考等,最新登录图片的排行榜,人气图片排行榜等等。

3Tag云图(Tag Cloud

其中Tag属于Web2.0的一个流行特性,就像目录,但是与目录不同,它强调用户的参与,用户可以根据自己的兴趣,主观判断对一个图片添加特定Tag(标签)。随着系统中的Tag数量的增加,简单的通过云图可以了解到最近流行什么。这也是我们数据库设计的重点。

        12 项目开发环境:Mysql5Java1.5JSPJSTL

        13 数据库设计:

整个数据库分为3个实体对象:用户,图片,标签(Tag)。对于用户而言,因为要和现存的认证系统相连,所以尽可能少的在本系统中保留用户信息,只是维护用户的帐户信息。图片实体要保存名称,登录的日期,图片发生的日期,对这个图片所添加的所有标签,备考等信息。Tag实体如下定义:

 

              

图片表:

图片ID

图片信息

图片Tag关联:

图片ID

TagID

Tag表:

TagID

TagName

 

这样的设计,符合规范化设计,结构清晰。对于数据的检索,不会超过5个数据库表(这个是经验值),对数据库的性能影响不会很大。

        在项目过程中,也考虑过选用其他的方案,比如:

 

图片表:

图片ID

图片信息

图片Tag关联:

图片ID

TagName

              没有采用这个方案的理由有:图片Tag关联会产生很大数据冗余,这是因为TagName会出现重复,而且它所占的字节数也可能很大(本系统设定为Varchar64));对于Tag的统计而言,相比TagName,应用TagID(数值形)作为检索条件,速度更快。

   

        14 参考资料:

http://www.klogs.org/archives/2004/11/ecaoeioeaeieeoe.html

http://del.icio.us

http://flickr.com/

http://blog.zkdu.com/index.php/archives/73

http://blog.timetide.net/archives/2005/01/

http://www.csdl.ac.cn/lis/index.php/%E6%9D%8E%E5%BF%A0%E9%9C%9E

 

 

 

 

 

2. 应用创新谈

21:跨数据库系统的设计考虑,比如定义字段时,字段类型尽可能的在以后可能的数据库平台上通用(比如:OracleMysql

22:数据库(特别时表和字段)的命名规约要在设计之前确定好。比如:

   表名采用复数:users,categories

   字段名的单词之间采用下划线分割:post_content

23:在进行复杂的检索的时候,关联的表的件数不能超过5个,超过的话,会引起数据库性能的急剧下降。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值