设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 5667|回复: 13
打印 上一主题 下一主题

[Access本身] 浅谈范式

[复制链接]
跳转到指定楼层
1#
发表于 2015-7-18 11:55:32 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 roych 于 2015-7-18 12:12 编辑

       并非崇洋媚外,但对比国外,国内不少Access书籍关于范式的讲解真的是泛泛而谈,一页甚至几百字就讲完了。以至于很多新手,包括我在内,开始时都没想过,觉得似乎这查询不好做,代码总可以吧?论坛不是有很多高手么?上论坛问下呗。

       所以每每看到设计比较糟糕的表,总会有股莫明火却无法发作,不能怪版友,毕竟人家是新手,但是这又偏偏层出无穷,只能默默怪某些人急功近利,误人子弟了。于是,便有一种想法,试图把这些整理下,供新手们参考。
       我们还是回到主题上来。

       什么是范式?范式就是数据表规范化的指导思想,其等级按1~5编号,称为第一范式至第五范式(1NF~5NF)。不过一般数据库设计符合第三范式就够了。

       第一范式(列不可分):删除重复组

       当规范化到第一范式时,从表中删除重复字段(又称重复组),由于仍需获取和报告数据,因此终止为相关数据的每个表创建单独的表。其操作如下:
1.        删除单个表中重复的组
2.        为每个集合中相关数据创建单独的表
3.        使用主键识别每个集合中的相关数据
       避免在单个表使用多个字段(重复值)存储相同的数据。最常见表设计是这样的:
宝贝A7月9日7月10日7月11日7月12日
销量3200289031073520
转化率5.30%4.50%4.90%6.20%
      不少从Excel转向Access学习的用户,开始时可能会这样设计表,因为看起来直观。但问题在于数据库部署之后,修改表(例如增加一天的数据)会影响前台跟后台,且需要耗费程序员大量精力和时间(总要写代码,动态去修改字段吧?)。

       替代方法是为销量和转化率创建单独的数据表,存储每天的数据,再以某个字段建立连接。如下所示:
宝贝名称日期销量转化率
宝贝A7月9日32005.30%
宝贝A7月10日28904.50%
宝贝A7月11日31074.90%
宝贝A7月12日35206.32%
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏7 分享分享 分享淘帖 订阅订阅
14#
发表于 2016-6-23 21:56:54 | 只看该作者
好帖学习了
13#
发表于 2016-5-13 11:19:44 | 只看该作者
2NF处理记录重复
12#
发表于 2016-5-13 11:19:16 | 只看该作者
1NF处理字段重复
11#
发表于 2016-5-13 10:53:57 | 只看该作者
很好,学习了
10#
发表于 2015-8-12 16:00:30 | 只看该作者
学习了 多谢了!!
9#
发表于 2015-8-8 11:12:02 | 只看该作者
ROYCH 多谢了!!辛苦了{:soso_e156:}
8#
发表于 2015-7-24 10:56:45 | 只看该作者
看了roych版好些文章相当不错(特别是ADO方面的介绍,我已收藏了),
roych版有不少的家底,强议建议roych版出书一本,引导菜鸟进阶ACCESS。

期待中......

点击这里给我发消息

7#
发表于 2015-7-23 07:07:39 | 只看该作者
学习了
回复

使用道具 举报

6#
发表于 2015-7-18 14:17:20 | 只看该作者
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 08:47 , Processed in 0.087319 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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