做了个网站,有一些用户头像使用的疑问,特此开贴询问大家。现在一个网站,很多地方都需要显示用户头像。比如,帖子(T_Topic)和回帖(T_TopicReply),都要显示发帖者和回帖者的头像。
我现在表的设计:用户表(T_User)里有用户头像字段,这个字段存的是用户头像的url。
为了达到显示用户头像的效果,我想了几种方法,大家比较一下,看看有没有更好的方法。
1.每一次显示头像的时候,通过用户ID去用户表(T_User)读取用户的头像url。
2.用(T_Topic)或者(T_TopicReply) left join T_User。
3.在(T_Topic)或者(T_TopicReply)里增加一个用户头像url字段。上面3种方法里:
第3种读取数据库的效率最高,但是用户如果更换头像以后,之前的数据(比如以前发的帖子或者回帖)头像还是老的;如果去更新之前数据里的头像url的话,对数据库鸭梨太大。况且会增加数据库的存储鸭梨。
第1、2种方法相对于3来说读取数据库会比较耗性能。另外,用户表里的数据我是采用缓存模式存在内存里的,也就是说第一次读取用户信息的时候去需要去读数据库的,后面再读取用户信息的话就直接读内存了。
有没有别的什么比较好的方法?
谢谢!
我现在表的设计:用户表(T_User)里有用户头像字段,这个字段存的是用户头像的url。
为了达到显示用户头像的效果,我想了几种方法,大家比较一下,看看有没有更好的方法。
1.每一次显示头像的时候,通过用户ID去用户表(T_User)读取用户的头像url。
2.用(T_Topic)或者(T_TopicReply) left join T_User。
3.在(T_Topic)或者(T_TopicReply)里增加一个用户头像url字段。上面3种方法里:
第3种读取数据库的效率最高,但是用户如果更换头像以后,之前的数据(比如以前发的帖子或者回帖)头像还是老的;如果去更新之前数据里的头像url的话,对数据库鸭梨太大。况且会增加数据库的存储鸭梨。
第1、2种方法相对于3来说读取数据库会比较耗性能。另外,用户表里的数据我是采用缓存模式存在内存里的,也就是说第一次读取用户信息的时候去需要去读数据库的,后面再读取用户信息的话就直接读内存了。
有没有别的什么比较好的方法?
谢谢!
解决方案 »
- Windows Service 多个timer如何不同时执行?
- ScrollViewer和Grid的问题
- 问下大家datagridview 如何设置列标题使标题文字只占一行,如果列宽小,只看最左边的
- 给大家介绍一个学习C#好地方!
- 如果让一个窗体始终在另一个窗体之前
- vs2005连接SQL2005中连接字符串的灵异事件!!!
- js C# 时间
- C#调用非托管dll,如何把数组作为参数传递进dll?
- 求教,数组指针如何发送?
- C#怎么解决用户误操作撤消的问题?请大家给个思路,当然有原代码更好了,在先等!!!
- 如何查看Microsoft.Office.Interop.Excel.dll的classid
- WebHttpRequest获取网页内容,如何保存Cookie?(js脚本生成的cookie)
和Hashtable哪个更加适合。其中ClassUser里有个字段就是用户的头像url
在用户的实体类里写一个通过用户ID获取图片地址的方法(注意:这里只需要去Image文件夹里名字为用户ID.jpg就可以了),这样也不用再数据库单独建那个字段。
用dictionary就行,比Hashtable还快点。我还做过测试见这个贴子最后。
http://topic.csdn.net/u/20100701/21/f5350afc-f645-48ef-97be-eac501c077cc.html