一个关于论坛帖子与回复处理的问题(加急型!!!)
现在我有两个表 一个叫内容表 一个叫回复表 他们之间由contentcode字段关联 一个内容可以有多个回复 就像论坛的帖子有回帖一样 现在我有一个展示页面 需要在展示内容的同时 展示出对此内容最后一个回复的用户 我本来用的视图 两个表连接查询 取最近的那个回复 但是这样一来 没有回复的内容就无法显示了 大家有什么好的解决方案麽如果是 通过内容contentcode 先去查有没有回复 有则查出所有回复 然后按照时间降序排列 取第一条数据 这个方法就不要了 我希望是能通过在数据库新建视图的方法解决 希望大家能提供比较快捷的解决方式 谢谢噢
(国家级加急问题 嘻嘻) --------------------编程问答-------------------- 一对多的关系你也要建立视图??
回复表有没有主键,如果有自增的字段,取最大的,一条思路罢了
--------------------编程问答-------------------- 关联用left outer join 就不会出现你说的问题
--------------------编程问答-------------------- 很简单的一个问题,哎! --------------------编程问答-------------------- 内容表 回复表
用内容ID 来关联
建立视图之后 用内容ID 来分组 回复时间来排序 取TOP 1 不知道你理解没 --------------------编程问答-------------------- 晕!想返回一个内容的回复用户,这个方法还要挑“只能是SQL Server数据库视图来实现”这种要求?
你应该有点灵活性,允许把各种实现方法摆在一起来使用、考验、测试嘛!搞低级的开发问题的时候不要过多约束开发者的大脑,不然就除了几个sql语句以外其它的什么设计都不会了。 --------------------编程问答-------------------- 至少你这类问题,作为一个设计师他首先考虑的不是sql,而是缓存。他会及时写下一句话,说明每当查询出了一个内容的回复用户信息,就要缓存10(最长)分钟,并且当此内容的最后回复变动了之后此缓存单元会自动删除。做出了这个决策,那么对于数据库查询sql的所谓“性能与简单性的平衡”的纠结就会减轻好多了。 --------------------编程问答--------------------
+1 --------------------编程问答-------------------- 我首先对楼主加急问题而只有40分表示鄙视
你可以用sql语句实现
select top 1 * from 回复表名 order by id desc --------------------编程问答-------------------- 把内容表的那条记录查出来,填充DataTable1;再把回复表的对应记录查出来,填充DataTable2。用DataTable1.Merge(DataTable2)两表合并,然后绑定到数据显示控件。
补充:.NET技术 , ASP.NET