设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1480|回复: 4
打印 上一主题 下一主题

[表] 新手关于表格字段设置的几个问题

[复制链接]
跳转到指定楼层
1#
发表于 2015-1-16 20:45:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.值的限制问题。
    以前理解的数据类型分数值型、文本型、日期时间型等类型,后来看书里写的可以对字段数据精确设置,我觉得这是一个不必要的功能,精确设置应该是窗体或是vba里的功能(现在我还没学到),我的理解是做一个程序给用户用,用户录入数据应该是从窗体录入保存到数据表里,而不是直接操作数据表录入数据的,即便是以后需要增加或修改功能,也只是增加表格,修改程序代码,无须再修改字段限制。    例如性别字段,假如在最开始设计就把字段设置文本类型,并且限制只能输入“男/女”,那么“男性、女性、帅哥、美女”这样的值是输不进去的,但是程序使用一段时间客户要求与国际接轨,性别字段要求输入“man/woman或male/female”就要改原表了,如果原表没有限制输入值,只需在录入窗体设置新的录入值,再把旧值 update 新值就可以了。    还有假如某项数据设计之初要求录入的数据只能在20-30之间,后来要改成25-35之间如果是在录入窗体里限制就简单多了,再有"省/市"数据如果都限制死了,如果地图地址更名,或是业务发展到国外需要填国外地址就麻烦了,所以我不明白这里的限制有何意义,总之我觉得如果做个程序投入使用之后,需要再更改数据表设置是很不正常的。

2.计算字段?
    这玩意我一直认为应该在查询或是窗体报表什么的里才会有的,没想到数据表里也有,有个实例表里有“姓、名、姓名、性别、出生日期”字段,姓名字段=[姓]&[名],是不可输入的,拿着这张表学做数据录入窗体没把姓、名字段拖出来,就把其他的字段添加上了,预览的时候在其他字段填了内容就退不出来了,提示姓名字段不能为空,填又填不进去,不明白设计者为啥一个姓名字段要设计成3个,再比如想设计个通讯录表,想后期能有更强大的功能决定加上身份证号、出生日期字段,当然有了计算字段,出生日期应该能从身份证号字段里提取的,也是无需输入的,这样貌似可以防止输入错误的日期,但是实际使用中,搜集人员信息,人家说身份证号忘了,或隐私不告诉你,可以告诉你出生日期、手机号码等信息,你这个日期也是填不进去的,所以我也不能理解这个功能。

3.值的替代
    数据表里学历字段是数值格式,1、2、3、4分别代表专科、本科、硕士、博士,窗体上根据数值显示文本,新增数据根据文本转化成数值保存到数据表里,这样设计比直接设计文本字段的学历好在哪?用于数据加密?就算别人得到原始数据表也不知道真实数据?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2015-1-17 19:43:31 | 只看该作者
你的思考有点意思。有意思的原因其一是你具备观察和分析的能力,其二是你的观察和分析有跳跃性。

关于你的问题,大体可以这样去理解:
1、数据库具有多种的约束,是因为数据库管理程序本身是相对独立的。它需要有一套保证数据的逻辑正确和数据安全的管理机制。虽然客户端也具备保证数据的逻辑正确和数据安全的能力,但这个能力不能替代数据库管理程序本身的需要。这就好像你家中有个空气开关,而单元还必须有一个空气开关一样,只有这样配置才能当你室内的空开失效时,单元的空开还能起到保护作用。

2、性别设置为“男/女”,只是假设你的使用范围只针对中国人使用。这个设置会使输入的过程,可以通过组合框来进行简单的选择,由此简化了操作。你是不能设想你的程序中的性别,既能输入并保存为“男/女”,又能输入并保存为“man/woman”的。因为这样很荒唐,英国人和美国人发现“男/女”不知所云,中国人不知“man/woman”为何物。最要命的还不是英国人、美国人和中国人,而是计算机在进行数据分析时,需要对男/女”于“man/woman”做翻译,徒增了许多难度。由此不难看出,数据应不应该限制,以及怎么限制,需要考虑使用的环境、操作的效率、维护的难度等多方面的问题。这些问题的存在实际上就是建立一种假设、建立一种前提,只有在这种假设和前提的基础上,才能讨论正确与错误,合理与不合理。

3、计算字段也是数据管理程序不断发展的一个结果,按照关系数据库设计的范式理论,是不提倡设置一个字段可以由其他字段计算而得到的。所以较早的关系数据库中没有这种类型的字段。但是在运用中人们觉得直接在数据表中设计计算字段,有其方便的一面。于是最近几年主流数据库管理程序中,都引入了计算字段。当然,不在数据表中设计计算字段,依然不会有什么问题,只不过你需要在查询(视图)中设计计算字段。所以你可以这样理解,数据表中的计算字段,只是把查询中的计算字段的处理功能,移入到了数据表中而已。

4、在数据表中是否用数字序列代替字符串,只与数据的存储量和排序有点关系。比如如果用数字序列表示学历程序,那么你筛选硕士以上或硕士以下的数据就很容易,因为你只需要>=3或者<=3就可以了。如果单纯用字符串的话,你就需要进行字符串的枚举,这就会使语句相对啰嗦一些。不过我觉得最大的考虑还是数据存储量的问题。
3#
 楼主| 发表于 2015-1-19 07:57:19 | 只看该作者
感谢指导,我觉得有问题还是实践的太少了,性别字段也可以用数字1和2代替吧!
我觉得现在很多书或是视频教程都是以知识为导向,一个知识点可以干什么,却很少有目的为导向的,如需要达到某个目的需要哪些知识有哪些方法,不同方法之间的优劣比较
4#
发表于 2015-1-19 08:50:54 | 只看该作者
舞空 发表于 2015-1-19 07:57
感谢指导,我觉得有问题还是实践的太少了,性别字段也可以用数字1和2代替吧!
我觉得现在很多书或是视频教 ...

参见以下文章就什么都明白了:http://www.office-cn.net/forum.php?mod=viewthread&tid=93966
5#
 楼主| 发表于 2015-1-19 10:12:15 | 只看该作者
版主真是太热情了,我10多年前就想学编程,但没有好的方法和交流场所,都是三天打鱼两年晒网,如果能早日遇到版主这样的导师,估计也小有成就了,现在也不晚,我又重新充满了信心{:soso_e113:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-30 18:49 , Processed in 0.107550 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表