首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于用户表的设计解决方案

2013-06-26 
关于用户表的设计使用最频繁的用户表大一些好还是小一些好三种设计方法:1 大表设计思路将用户相关的信息都

关于用户表的设计
使用最频繁的用户表   大一些好  还是小一些好

三种设计方法:

1 大表设计思路
将用户相关的信息都设计在一张用户表中

2 常用和不常用做分离设计
将用户常用的和不常用的做分离设计,这样可以达到更好的性能,比如说用户详细信息,只有用户编辑个人信息时才会修改,用户在使用其他功能时,是不需要这部分的;

3 按用户类型做分离设计
用户ID,用户名,密码;等基本信息放在一个表中,这样满足不同应用的需求,将不同用户独有的信息设计到不同的表中,和基本信息表1对1关系


举例:
用户现有  老师  学生  家长

按照设计思路1:
用户表是老师,学生,家长三个实体属性的并集,并且有一个用户类型字段,标识不同的用户
User(userID,..........userType)
优点:可以减少数据库请求次数
缺点:用户表的写锁频率较高

按照设计思路2:
将使用频繁的用户属性和只在特定场景才会使用的用户属性,分离至不同的表
优点:用户表基本无更新操作,所以无写锁
缺点:

User(userID,userName,userType,email,password)

UserDetail(userID,gender,portrait,accountStatus,level,score,address,telephone,degree,college)

按照设计思路3:
将表分为用户表,老师表,学生表,家长表,其中用户表分别和老师表,学生表,家长表,一对一关系
用户表只存最基本的信息,登录名,密码,用户ID
User(userID,loginName,password) 
Teacher(userID,school,course)   
Student(userID,school,grade,class)   
Parent(userID,address,occupation,age)

优点:利于拓展某一类型用户
缺点:由于修改不同用户的信息时,要操作不同的表,程序逻辑略微复杂;


问题主要是关于用户表的设计,如何设计最为合理
1 是否分表
2 依据什么分表,用户类型还是面向业务的使用频率

请大家帮忙看一下  那种更利于高并发  海量数据的应用

感谢大家  多多赐教
数据库 设计
[解决办法]
这个要看你怎么用,比如你每次都一次性查完,那一个表好一点,如果你经常需要查询部分信息,那可以拆小,
[解决办法]
1 是否分表
这个要看你的系统设计,如果你只是增删改用户信息,那么在这里,分不分区别不大。

2 依据什么分表,用户类型还是面向业务的使用频率
还是那句话,根据你的系统设计来决定。


概括来说,如果对象的信息不常修改的话,可以设计成一个大表。

[解决办法]
你那个案例有点长,我举个简单的例子把,一个电子商务网站,一般都是先展示商品列表,附带一些图片,而货物的详细信息是点进去才看到,那这种情况下,拆表,这样可以减少一次性返回的数据量。但是如果这个网站每次都需要第一次就加载所有信息,那单表会好,反正都要返回那么多数据,减少表关联可以提高速度
[解决办法]

引用:
引用:
1 是否分表
这个要看你的系统设计,如果你只是增删改用户信息,那么在这里,分不分区别不大。

2 依据什么分表,用户类型还是面向业务的使用频率
还是那句话,根据你的系统设计来决定。


概括来说,如果对象的信息不常修改的话,可以设计成一个大表。

1 查询应该是主要需求


2 您能否在详细一些   我不能确定依据系统设计的什……


如果你只是练手,那你两种方式都做一下好了。
如果你的数据库设计时针对一个应用程序的,那么你的设计就要符合应用程序的设计。

热点排行