该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-27
如果大家用过fackbook或者及国内的一些SNS对facebook拷贝的交友网站,就发现在在用户登录后首页有一个好友动态。它把好友最近发生的事情都罗列出来。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-03-27
需要通知的持久对象,可以对他的CRUD方法拦截吧,然后把相应的事件插入一个独立的通知表里面去。我是这么初步想的,不过还没有细想下去,等JavaEye将来做到这个部分的时候,我再仔细考虑。
|
|
返回顶楼 | |
发表时间:2008-03-27
robbin 写道 需要通知的持久对象,可以对他的CRUD方法拦截吧,然后把相应的事件插入一个独立的通知表里面去。我是这么初步想的,不过还没有细想下去,等JavaEye将来做到这个部分的时候,我再仔细考虑。
除了JMS的选择之外.现在我也是这么考虑的.建立一张通知表,即好友动态的表.关键是如何设计这张表.相当于这张表要把好友往图片,视频,评论.音乐等等表插入记录的时候要合理的记录下来. 用户查询这张表就可以得出好友的最近所有动态信息包括图片,视频,评论... |
|
返回顶楼 | |
发表时间:2008-03-28
呵呵.大家关注的更多还是开发呀.做架构的朋友没兴趣讨论么?
我弄了一个Friend_Dynamic表.大家看看 Dynamic_ID varchar(32);//主键 user_id varchar(32);//用户编号 Dynamic_Name varchar(400);//动态消息名称 Dynamic_Desc varchar(3000);//动态消息说明 Dynamic_Thumb varchar(120);//动态消息截图 Dynamic_Type int(1);//动态类型 blog/comment/music/video Create_time Date; |
|
返回顶楼 | |
发表时间:2008-03-28
光这些还不够,怎么表示加了多个好友,多个照片,发布话题(跟其他不一样,还要显示段落)
其实只需要四个字段就够,获取数据时真正关心的是ID, 时间,显示需要关心的是数据和样式 user_id operation_raw_data operation_type operation_time 根据operation_type从cache中获取operation_render_template |
|
返回顶楼 | |
发表时间:2008-03-28
我定义的应该类似uId,dataId, dataType, lastUpdateTime
分布式的再加上nodeId。 主要考虑比较时会涉及那些数据以及如何让这些数据尽可能最小,数据表索引最小,存储空间最小。但又要保证功能完整性。 通常这样的动作都牵扯比较大的数据量,所以要考虑系统的稳定性,效率相对而言就可以低点,因为这可以通过硬件来实现。 |
|
返回顶楼 | |
发表时间:2008-03-28
imjl 写道 我定义的应该类似uId,dataId, dataType, lastUpdateTime
分布式的再加上nodeId。 主要考虑比较时会涉及那些数据以及如何让这些数据尽可能最小,数据表索引最小,存储空间最小。但又要保证功能完整性。 通常这样的动作都牵扯比较大的数据量,所以要考虑系统的稳定性,效率相对而言就可以低点,因为这可以通过硬件来实现。 dataId?这样设计性能应该是最差的,还没想到有比这性能更差的设计 nodeId?多此一举吧 |
|
返回顶楼 | |
发表时间:2008-03-29
我觉得使用动态表是一种比较简洁,性能也比较好的实现方式
当然,动态表的实现也有几种方式 1. 实时的动态表(用户更新内容时,实时更新好友列表的数据) 2. 普通动态表(只新增,不删除) msn space应该采用的是普通的动态表方式(至少表现方式上,因为遇到过点击进去看好友的内容,而数据已经被删除的状况) |
|
返回顶楼 | |
发表时间:2008-03-29
lllyq 写道 光这些还不够,怎么表示加了多个好友,多个照片,发布话题(跟其他不一样,还要显示段落)
其实只需要四个字段就够,获取数据时真正关心的是ID, 时间,显示需要关心的是数据和样式 user_id operation_raw_data operation_type operation_time 根据operation_type从cache中获取operation_render_template 如果程序实现render还可以考虑加一个cache_content字段,或者可以直接使用js template+css,甚至parse raw to map部分也可以用js实现 |
|
返回顶楼 | |
发表时间:2008-03-29
我网站用的是jms,相关操作的时候发一个消息到jms broker。
有些时候操作的时候不仅仅要记录这些事件,还可能需要其他事件。比如发邮件、发pm等等,这些是耗时的操作,也可配置到jms中。 不过现在感觉jms有点重,我想完全可以换成ruby的starling,这样用memcached的lib就能访问 |
|
返回顶楼 | |