注册 登录
编程论坛 ACCESS论坛

请问access是新创建一个表还是增加几个字段来的合算?

willstier 发布于 2010-07-29 09:49, 919 次点击
表Form(订单),现在有15个字段,估计平均下来每条记录字符数在1K以内。现在想要做一个用户积分功能,需要4个字段(User_Id,User_Point,Point_Time_Start,Point_Time_End)每天记录都很短.每一个订单都产生一个积分记录。
我想问一下,我是另外建立一个积分表Point(那样的话就是5个字段,需要一个Form_Id),还是就在Form中直接加上这4个字段?

从性能上来说:
sqla = " SELECT User_Id,User_Point,Point_Time_Start,Point_Time_End FROM [Form] WHERE ....."
sqlb = "SELECT User_Id,User_Point,Point_Time_Start,Point_Time_End FROM [Point] WHERE...."
是否有区别?
相差多少?
4 回复
#2
longerth2010-07-29 10:33
1)可以在原表上添加字段
2)如果要新建一Point表,那么字段Form_Id应该是主键并与Form表的字段Form_Id相对应(Form表字段Form_Id也应该是主键),把Point表的Form_Id字段与Form表的Form_Id字段建立关系
sqla = " SELECT User_Id,User_Point,Point_Time_Start,Point_Time_End FROM [Form] WHERE ....."
sqlb = "SELECT User_Id,User_Point,Point_Time_Start,Point_Time_End FROM [Point] WHERE...."
有什么区别吗?它们只不过是不同表的条件查询而已,没什么可比性
#3
willstier2010-07-29 17:01
可能是我没有说清楚,现在我有2个选择
1、Form表增加几个字段,利用sqla查询
2、新建Point表,利用sqlb查询。
这两个选择面临着Form表和Point表的记录长度不同的问题,虽然记录条数(rs.count)相同,但是性能上会有区别不?毕竟记录长度不同的话,会不会查询上费时更多?
#4
longerth2010-07-29 19:16
时间上的差异可以忽略不计,因为只在该字段的上查询符合要求的数据,然后再把与该字段相关的数据保存在记录集中比如:
sqla = " SELECT User_Id,User_Point,Point_Time_Start,Point_Time_End FROM [Form] WHERE User_Id=" + text1.text +""那么它只会在Form表的User_Id字段搜索符合text1.text条件的数据,然后再把与User_Id字段相关的数据保存在记录集中
#5
willstier2010-07-29 23:06
因为今天和同事在争论这个话题,他非要坚持说在一个大表中(字段多)要慢的多。
1