首页 新闻 会员 周边 捐助

如果按用户订阅的需求主动推送数据呢?

0
悬赏园豆:10 [已解决问题] 解决于 2015-07-02 09:12

我们现在每天都会有十万左右的新数据,而客户提交了一些需求,当有符合他们需求的数据就要主动推送给他,整个数据库有上百万的数据,客户提示的需求也有几千条,怎么样做到每次有新数据时,就去判断是否符合用户的需求,如果符合就推送给用户。数据量太大,如果一条一条查询性能太差,请有这方面经验的朋友指定一下。谢谢

小徐的博客的主页 小徐的博客 | 初学一级 | 园豆:15
提问于:2014-08-02 09:50
< >
分享
最佳答案
0

你这样提需求,基本就是要求给的答案是算法级别的,通用性的,无可挑剔的。

类似有时候碰到客户,问需求,也是泛泛而谈,现在做的生意,不过百万千万,已经在考虑当他生意额到几百亿的时候,

软件是否能够满足需求了。

提些意见给你吧

1、客户的需求大概是以什么样的形式出来,最好举例说明一下,比如, 金额》10万,还是怎么样的,

你们是如何保存客户的需求的,客户的需求有几千条是什么意思?有几千个不同的客户还是他们的需求满足条件的数据有几千条?还是他们的条件有几千条?

2、如何推送给客户?客户是采用订阅机制?留下email帐号?还是长期连接在服务器上,需要即时响应?

3、可能你提的问题离我太远,完全无法理解,或者你是做学术研究的?

我知道问题必须抽象出来,可是你这抽象的级别也太高了点,完全看不懂,能不能放下身价,

说点通俗一点的,比如你是啥数据库,啥程序结构,客户的需求是什么样子的,通常你们用什么途径进行推送?

收获园豆:10
爱编程的大叔 | 高人七级 |园豆:30844 | 2014-08-02 10:06

谢谢您的回复;

我再把我的问题描述一下:

我们有数据库(SqlServer)里有很多房源数据,每天也会新增很多数据,我们的客户(房屋中介公司)会根据他们的需要提交一些需求,比如需求为:3房2厅面积100-140之间的房源。

程序上我们希望每当有新的数据的时候,就要判断这条数据是否满足用户的需求,如果满足,就主动添加到用户订阅的结果表中,这样他们登录后立即就可可以看到符合他们需求的数据了。

请指教,谢谢!

小徐的博客 | 园豆:15 (初学一级) | 2014-08-02 10:12

@小徐的博客: 

这样的情况有两种设计方式,看负荷量,以及看投入成本及产出收益情况而定。

1、订阅肯定是在数据库中保存的条件。但客户登录看到符合他们需求的数据,其实是假的,

根本不需要事先查好放在一个地方,而只需要等他们登录的时候,取出他们的需求条件,按照条件查询出来给他们就行了。如果可能的话,甚至是一句SQL语句就可以搞定的事。

2、如你所说,有个订阅数据表,这样的话类似于网站的静态HTML数据生成机制,对于空间的需求是比较恐怖的,通常是大公司以空间换时间的做法。但这种做法,其实就没有所谓的实时概念,通常就会允许有一定的时间误差,也就是说每24小时生成一次,或者每12小时,或者每4小时生成一次,这个通常可以交给后台服务进程来完成。

 

3、以我的经验来看,能让你来这儿问这个问题的情况,基本上你们最多就是一个三级城市的房产网这样子,一般第一种方法就够用了,SQL Server+一个好的服务器够对付了。

爱编程的大叔 | 园豆:30844 (高人七级) | 2014-08-02 10:19

@爱编程的大叔: 我们现在就是失算交给后台报务进程来做,在时效上可以延时。但是用户的需求也很多,一个用户有很多需求,每次有新数据都要去全部查一次吗? 

小徐的博客 | 园豆:15 (初学一级) | 2014-08-02 10:22

@小徐的博客: 

这里面有几个变化,一是客户可能随时改变需求,添加需求、删除需求,变成你要一直去修改他的订阅表,

这个太有挑战性了,你们的架构设计者太牛叉了。

二是外部数据也会经常变化。

采用这种设计方式,基本上来说,你们网站的年收入得达到千万元级别吧,好多事情需要去做,需要的服务器资源也更多,只能说,你们拿着银行的设计架构去帮一家年营业额1千万小企业做软件了。

当然,企业只肯给1万,而你们的投入需要1百万,两边怎么凑不起来。

 

所有的系统架构都是有边界的,没有一种架构是老少皆宜的。

你们采用了那种架构,在这上面基本问不出什么结果来的,需要在很多方面进行调整,需要针对客户访问量,数据增加量、服务器运行等各种因素综合进行考虑。

差不多的意思就是美国人打死一个塔利班,用掉一个千万美元的导弹,

中国特种部队打死一个,用掉一颗6元钱的子弹这样。

反正,有钱人有有钱人的折腾方式,而且他们是对的,至于白领要骚包买LV,那也是可以的。

爱编程的大叔 | 园豆:30844 (高人七级) | 2014-08-02 10:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册