日期:2014-05-18  浏览次数:20392 次

(多多帮忙,谢谢!)单点登陆如何设计用户表来实现高性能??
单点登陆的系统由若干个子系统组成,子系统中用户的权限和所从事的业务不同,如何设计用户表才能满足高性能的需求,有经验的朋友多多帮忙,能给个例子更好!
我的想法:
      系统由2个平台组成分别为1和2
      表A----用户主表(记录用户的基本信息即总用户表)
      表B----在平台1中的子用户表
      表C----在平台2中的子用户表1(个人用户)
      表D----在平台用户2中的子用户表2(集团用户)
问题主要出在平台2中这两个子用户表的设计,两种用户有不同的权限和业务逻辑,我特别不确定这样做的可行性和性能,望有经验的高手给予帮助!谢谢!

------解决方案--------------------
关于不同用户类型的表设计,一般有两种方案:
1.所有用户放在一个表里,加个字段(建议用int而不用bit,以便扩充)来标志用户类型。
优点:只用一个表;类型扩充比较容易;有些共性的东西可以统一处理,某些情况下的检索效率比较高
缺点:单表记录条数可能过大从而影响效率;处理业务逻辑需要频繁判断用户类型,增大开发难度
2.分两个表存储
优点:逻辑实现简单明了;单表范围内的操作效率较高;
缺点:共性的东西得写两遍;扩展用户类型比较麻烦(比如增加1-5星级用户等)

这两种方案都是可行的,建议使用第二种方案。
因为如果涉及到权限和复杂的业务逻辑,使用第一种方案将会极大增加程序的复杂度,
使得开发和维护的成本比较高。