公司要做一个站内文章订阅功能(非RSS;只能是注册用户可以订阅);页面设计订阅关键词,让用户选择需要订阅的关键词,然后根据关键词进行查询,用户订阅的相关内容。数据库建以下几张表:
 
article(文章表)
 id title cid  keywords description content
 文章ID   标题      类型       关键字               文章描述        文章内容
 数据:
  1       朋友      3       朋友,关系         我们是朋友......  内容.......
 
userfor(用户订阅表)
 id      userid    keywords
 1         3        老师,朋友
  
 两张表的keywords 都是nvarchar,关键词之间以“,”分开:(a,b,c),可以通过userfor表中的朋友,找到article表中keywords含有朋友的数据
 
相请问大家,这样的设计是否可行,有没有更好的方式?请高手指教 

解决方案 »

  1.   

    如果这样设计的话,我的sql 查询如何做?
      

  2.   

    select * from 表 where ',' + keywords + ',' LIKE '%,关键字,%'你最好在保存关键字时,在两边自动各加闪给一个逗号,这样你查询直接写select * from 表 where  keywords  LIKE '%,关键字,%'
      

  3.   

    select * from 表 where  keywords  LIKE '%,关键字,%'这里的关键字在数据表中,是不是要用到游标?
     
      

  4.   

    select * from 文章 where  CONTAINS(keywords,'01,02')
      

  5.   

    全文索引?但是现在我的'01,02' 是在表userfor里的。我怎么使用