【数据库设计】-文章内容-不同的用户角色在前台查看的内容是不同的-【设计思路】-分不同的角色保存不同的内容-能行吗? 
类似这样一篇文章: 
标题:《经济学》 
内容: 
  一、概述 
    经济学是一门研究人类行为及如何将有限或者稀缺资源进行合理配置的社会科学。 
  经济学的英语Economics是由希腊文οἶκος [oikos]而来,意思是家庭、家族、财产权(family, household, estate)以及νόμος [nomos], 或法律(custom, law)组成,从逐字上来看是指家族管理(household management)或是政府的管理。     二、经济学的起源 
  “经济学之父”亚当·斯密的《国富论》是近代经济学的奠基之作。在亚里士多德时代的观点是:政治学、伦理学、政治经济学三位一体,诺贝尔奖获得者阿马蒂亚·森在《伦理学与经济学》说道: 
  在很长一段时间内,经济学科曾经认为是伦理学的一个分支。经济学学科分支 
    三、JEL分类系统 
  JEL分类系统,是美国经济学会《经济文献杂志》(Journal of Economic Literature)所创立的对经济学文献的主题分类系统,并被现代西方经济学界广泛采用。该分类方法主要采用开头的一个英文字母与随后的两位阿拉伯数字一起对经济学各部类进行“辞书式”编码分类。 
  例如,C71为“C:数理和数量方法”类中,“C7博弈论与讨价还价理论”中的有关“C71:合作博弈”的内容。
要求: 
    前台页面有搜索功能,查经济学能查到这篇文章,但是用户1能看到红色以外的,用户2能看到黑色和红色的,用户3能看到全部完整的内容。这在数据库表结构的设计上是不是有难度呢?(反正我觉得是啊)。简单的方法是同一篇文章存三个,不同的用户查看不同的文章,但是这样肯定不行啊,数据量太大了!再者用户要是四五个不就不能用了吗? 请高手指教数据库如何设计,先谢过

解决方案 »

  1.   

    在另一帖已经回复了;表的设计:
    用户表,
    权限表(建议使用权限组,就象windows系统的权限组),
    用户资料表(建议这个表用一个type来区分,不同的角色用户有不同的type限制)思路:
    1.先建立一个权限组,这组权限可以查询哪些表的资料?这里是一对多关系,一个权限组可以查询多个表的资料;
    2.把用户加入到权限组里,这个组里有什么权限?这个用户加入后就有什么权限;
      

  2.   

    有关数据库的设计,可能参考这里:
    http://topic.csdn.net/u/20081115/10/0859F63D-E3E0-4139-BFED-EC2CADC748D3.html
      

  3.   

    文章内容分割表
    -------------
    片段编号(PK)  文章ID(int)   开始位置(int)  结束位置(int)
    1              1            1             50
    2              1            51            100
    其中文章内容分割表的开始位置和结束位置的作用是可以通过 dbms_lob.substr(<整篇内容>,<开始位置>,<结束位置>)获取片段的内容
    权限组子表:
    ------------
    组编号(FK)     授权片段编号(FK)
    1               1
    1               2
    2               2用户表:
    -----------
    用户名          权限组(多个则以逗号隔开)
    A               1
    B               1,2
      

  4.   


    最主要看你是什么设计表了?
    如果设计为父子表关系,那么子表可以设计为录一段就设计权限段;
    如果不是父子表关系,所有的内容你只存放在一个表里,那么就要设计一个type类型,不同的用户可以看到不同的type类型的内容,也就是每一条记录对应一个type,这样就有可能某一段内容被几个不同类型的人看,就存在存储内容冗余了;
      

  5.   

      请教,什么是“权限组子表”,oracle里有这个东东吗?
      

  6.   

     我的建议是,文章分为几个部分就设置几个role;用户被赋予这些role的组合。