Office中国论坛/Access中国论坛

标题: 对置顶帖开发者十诫的疑问 [打印本页]

作者: panjie9327    时间: 2016-6-23 10:07
标题: 对置顶帖开发者十诫的疑问
7.Thou shalt not use Autonumber if the field is meant to have meaning for thy users. 如果一个字段对你的使用者而言有任何应用上意义,不应当对其采用自动编号。


自动编号用作表设计中的主键、把表关联起来挺方便的,为什么说不应当采用呢
作者: panjie9327    时间: 2016-6-23 10:11
还有这句话

6.Thou shalt split thy databases. 你应当分离你的数据库


分离数据库怎么理解,是采用链接表、链接窗体么

谢谢,新手
作者: todaynew    时间: 2016-6-23 12:25
本帖最后由 todaynew 于 2016-6-23 14:29 编辑

“如果一个字段对你的使用者而言有任何应用上意义,不应当对其采用自动编号。”

我理解是这样的:
1、对使用者有意义,表现为使用者可以通过字段的值理解其含义,比如有一个收料表,收料单号可能对使用者有意义,使用者或许需要通过单号来判别收料的类型、归属的月度等,如果这时用1、2、3、。。。进行收料单号编号的话,使用者就得不到他希望通过单号来识别的信息了。
2、这里的自动编号,应该是指不包含其他对使用者有意义信息的自动编号方法,而不是是指特定了一些有用信息的自动编号方法。
3、是否用自动编号做主键主要看是否更为方便,自动编号做主键不排除可以另外存在备用主键。比如我们在收料表中设计一个“收料ID”的自动编号字段作为主键,同时也设计一个“收料单号”作为备用主键。我们呈现给使用者的是收料单号这个备用主键,但实际对数据表的很多操作,我们主要依赖“收料ID”这个主键。

“你应当分离你的数据库”
我理解这句话,似乎应该是:“你应当分解你的数据库”。意思是数据库应该至少按照第一、二、三范式进行设计,减少数据冗余。
作者: xinrenq    时间: 2016-6-23 12:41
主键,不用自动ID,这说法不是绝对的,
自动编号,一旦删除,不能随意添加回去,连续性比较好,不能更改
不好的地方就是,查看起来比较麻烦,不利于简单的查看和判断
实际设计上要根据需要来设计,举个例子:
物料编号,一般会被 很多的表数据关联使用,有一天,由于某些原因,公司要把物料编号重新整理,比如说8位的变成12位了,编排规则也变了,如是一个文本类的字段做为主键的话,改的地方是相当的惊人的,但一开始就是自动ID和数字类关联键的话,而物料编号是另我一个非主键字段显示,这样,就相当的简单,这类方式比如:SAP就采用此类方式
各有好处,就看程序设计了

分离数据库,因为这句不知道从何说起,从实际工作来说,从单机使用上,意义不大,多人共享数据,那当然是要拆分的,除此之外,就是考虑程序编辑与更新时,不随意覆盖数据,可能是一方面原因,(因为程序部分与数据源部分分开了)


作者: panjie9327    时间: 2016-6-23 21:28
谢谢两位,分析的很详细

还有todaynew老师的小品我很喜欢




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