求助~~~ Sql语句怎么写,考虑效率!!(急,在线等)

guochangchun21 2011-06-28 03:28:38
业务背景:用户可以订阅信息,发布信息后要根据条件匹配符合订阅信息的用户

想求一个查询Sql

表结构:

信息标签表:
id name
1 A
2 B
3 C
4 D
该表标签唯一

信息表
id content
1 sdfdsfds

信息标签与信息表关系表
id infoId lableId
1 1 A
2 1 B
3 1 C
4 1 D

规则(订阅)表
id rolename userintid
1 role1 1
2 role2 2
3 role3 3

订阅的条件,放到标签表中了,表这么设计就是因为以后可能还会加条件,不会影响程序。

规则(订阅)与标签关系表
id roleid lableid
1 1 A
2 1 B
3 1 C
4 1 D
5 2 A
6 2 B
7 2 C
8 2 D

现在要查询 符合条件的用户(条件就是标签表中的内容)
...全文
217 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
xineryixin 2011-07-01
  • 打赏
  • 举报
回复
各表中的各种id分别是什么意思,有没有关联,能描述一下吗
cecedeng 2011-06-28
  • 打赏
  • 举报
回复
进来学习的
guochangchun21 2011-06-28
  • 打赏
  • 举报
回复
您说的意思我明白,可能我的意思我没表达明白,呵呵
guochangchun21 2011-06-28
  • 打赏
  • 举报
回复
还有得到订阅的列表,不是还得查询吗,也有点击的动作,点击动作后要触发获取订阅的信息列表,订阅的信息列表还得上表中去查询,现在就是根据上面的表结构查询很费劲
guochangchun21 2011-06-28
  • 打赏
  • 举报
回复
记录登陆用户订阅的信息 不是还得存到表里吗?
叶子 2011-06-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 guochangchun21 的回复:]
然后把这些符合条件的信息推送给订阅用户。
[/Quote]

用户订阅后就让用户自己得到数据就可以了。

例如用户登录后,有个推送列表。
根据用户自定义的关键词得到推送列表信息,一般是时间倒序,top 5-6-10都可以。

不需要人工推送的,这个之间不需要用表做人和订阅信息的死关系的。
guochangchun21 2011-06-28
  • 打赏
  • 举报
回复
“推送” 其实 在当前功能上就是Insert操作 ,具体怎么定时 有另一项操作来执行它,现在就缺一个这个的select 操作
guochangchun21 2011-06-28
  • 打赏
  • 举报
回复
对的 这部分功能 是有的 maco_wang您的意思我明白
我们做的微博和现在的微博还是有区别的,也就是利用微博的思想是想本公司的业务,也就是自定义的业务。
要做一个订阅的功能(定时推送信息)。也就是用户可以订阅一些关键字,这些关键字存在一张表里,表结构就如上,现在就是想根据客户发的微博信息,拆成关键字,这些关键字肯定是在表中的,这些关键字对应订阅表的信息,这样就能把订阅的用户查找出来 然后把这些符合条件的信息推送给订阅用户。
叶子 2011-06-28
  • 打赏
  • 举报
回复
修改--》没有“推”的动作。
叶子 2011-06-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 guochangchun21 的回复:]

用户可以订阅关键字,也就是如果用户订阅了关键字,别人发的微博信息要拆开,然后拿拆开的关键字匹配订阅的用户,把订阅的用户找到,然后推送给订阅用户
[/Quote]
例如我订阅了3个关键词 “美女”,“美食”,“美景”
在我的被推荐博文中 得到的是(代码类似这样)
select 标题 from tablename 
where charindex('美女',内容)>0
or charindex('美食',内容)>0
or charindex('美景',内容)>0

我就是说这个意思,但是实现上怎么能高效 我也没有研究过。
这就是得到信息,所谓推送,但是大多是根本没有“退”的动作。
叶子 2011-06-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 guochangchun21 的回复:]

其实这个功能就是实现微博的功能 发布信息就是 微博的那个140个字,但是有格式的,这里面也有些业务得必须放到标签表里面,这个标签表存的就是关键字,里面还有个字段 就是关键字发布的数量也就是热度
[/Quote]
围脖的关注是指关注人,人和人建立关系即可。例如我关注了10个人,在我登陆的时候,这10个人如果有最新博文要提醒我。

guochangchun21 2011-06-28
  • 打赏
  • 举报
回复
用户可以订阅关键字,也就是如果用户订阅了关键字,别人发的微博信息要拆开,然后拿拆开的关键字匹配订阅的用户,把订阅的用户找到,然后推送给订阅用户
guochangchun21 2011-06-28
  • 打赏
  • 举报
回复
其实这个功能就是实现微博的功能 发布信息就是 微博的那个140个字,但是有格式的,这里面也有些业务得必须放到标签表里面,这个标签表存的就是关键字,里面还有个字段 就是关键字发布的数量也就是热度
guochangchun21 2011-06-28
  • 打赏
  • 举报
回复
恩 是的 这个表设计 是复杂了 但是领导设计的 也没办法啊 更领导提建议了 但是不起效果,望高人指点
叶子 2011-06-28
  • 打赏
  • 举报
回复
你这个订阅又是角色,又是用户,又是标签的
貌似是你把问题复杂化了...
叶子 2011-06-28
  • 打赏
  • 举报
回复
不太理解.

一般订阅都是分为两种情况:
1、建议人与人的关系,例如A用户订阅了B用户,
B用户在添加信息后,A用户通过订阅的关系表得到B的新发布的信息。

2、根据关键词订阅,例如我关注的关键词:“ABC”。
不直接建立关联,就是再得到推荐列表的时候,加载最近的有关键词的内容。

你貌似是用人和信息直接建立关联了?
xuexiaodong2009 2011-06-28
  • 打赏
  • 举报
回复
复杂啊,
guochangchun21 2011-06-28
  • 打赏
  • 举报
回复
没人看懂吗?

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧