Office中国论坛/Access中国论坛

标题: Access建表规范总结(三)——主子表拆分 [打印本页]

作者: 盗梦    时间: 2014-9-6 10:11
标题: Access建表规范总结(三)——主子表拆分
本帖最后由 盗梦 于 2015-6-16 10:07 编辑

       我们建表还会出现一种常见的情况,一条记录会重复出现,只有几个字段内容不同。这种情况在Excel表现的比较明显。很多人直接用合并单元格的方式显示。但到了Access,他们就茫然了,不知道怎么弄。因为Access并没有他们熟悉的合并单元格这种方式。

       这个合并单元格的方式虽然直观,但数据处理上各种问题。连Excel我都是不推荐使用合并单元格的。
       Access作为数据库,要想怎么把数据用较好的方式存储。展示是另外一方面,存储和展示分离。

       看例子吧,好理解一些。
       有个超市,他想记录一下每个客户的购物单。

       不好的建表情况:
       [attach]54560[/attach]
       这样,客户信息和购物信息放在一起。有很多数据都是重复出现的。这种建表会造成很多冗余的数据,保存了很多多余的信息,而且不利于查看。

       应该把这些重复的信息拆分出来,作为主表。而那些购物信息,则作为明细表,也就是子表。这样也比较严谨,也十分清晰。主表和子表之间再用一个字段联系即可。知道哪些明细是哪个主表记录的。

       比较好的建表结构:
       [attach]54561[/attach]
       或许你会说,这样查看不方便。你可以弄一下关系。就可以查看到他们的对应关系。
       [attach]54562[/attach]

       建立关系后,可以看到主表有一个加号,点开就可以看到相关子表的信息。这样比Excel合并单元格还要直观。
       [attach]54563[/attach]

       主子表拆分的主要思路是,把重复的信息拆分出来作为主表,剩下的部分作为子表。子表要加入一个主表的主键作为对应关系。这样就可以轻松做到主子表结构。


相关文章:
       Access建表规范总结(一)——高度概括
       Access建表规范总结(二)——基础表独立
       Access建表规范总结(三)——主子表拆分
       Access建表规范总结(四)——适当冗余
       Access建表规范总结(五)——辅助字段
       Access建表规范总结(六)——最小信息
作者: olderdream2007@    时间: 2014-9-6 14:01
希望高人继续出这类好帖子 。
期待等把常见的 其它对象如 查询 窗体 报表 都能这么经典给大家讲解下。非常感谢 期待中---
作者: 盗梦    时间: 2014-9-6 14:02
olderdream2007@ 发表于 2014-9-6 14:01
希望高人继续出这类好帖子 。
期待等把常见的 其它对象如 查询 窗体 报表 都能这么经典给大家讲解下。非常 ...

这个建表规范还有一个贴在总结中
作者: olderdream2007@    时间: 2014-9-6 14:08
盗梦 发表于 2014-9-6 14:02
这个建表规范还有一个贴在总结中

好的 幸苦了 期待中
作者: 盗梦    时间: 2014-9-11 11:55
olderdream2007@ 发表于 2014-9-6 14:08
好的 幸苦了 期待中

Access建表规范总结(四)——适当冗余
http://www.office-cn.net/thread-118830-1-1.html
作者: peterhoo    时间: 2015-11-23 14:41
辛苦
作者: today_suny    时间: 2016-1-5 22:32
学习了
作者: Superleistung    时间: 2016-3-9 09:30
我就是那个传说中闷头建了107个表然后被它们的结构搞到崩溃的笨蛋~
感觉这个主子表拆分可以讲的再深入些。
因为在建立表的时候感觉有些表其实可以适当组合而不必拆分,因为拆了可能更复杂。
但何种情况适合怎样处理,个人虽然有些模模糊糊的感觉但还难以汇总成文。
期待可以借鉴大神的经验。
作者: 盗梦    时间: 2016-3-9 12:23
Superleistung 发表于 2016-3-9 09:30
我就是那个传说中闷头建了107个表然后被它们的结构搞到崩溃的笨蛋~
感觉这个主子表拆分可以讲的再深入些。 ...

加油,这是一个需要经常实践的东西
作者: 晨微凉    时间: 2016-3-26 10:10
感谢分享




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3