当然是不符合.每个属性的值唯一,不具有多义性; http://www.math.pku.edu.cn/teachers/zsy/gljy4.htm
/***************************************************/
铁的承诺,风的回忆.
永远的亚特兰蒂斯,永远的炎龙骑士团.
/***************************************************/

解决方案 »

  1.   

    这实际上是编码是否要有规则的问题。
    Haiwer(海阔天空)说的对,主要是看你的应用,也就是说,在你的应用里,如果只是单纯的把0411000300000001作为编码,0411并不代表地区,0003也不代表行业编码,则符合范式,否则就是违反了第一范式。(例如,如0411代表地区,那么当0411000300000001这个用户离开0411这个地区,那你怎么办?改不改编码?不改,他已经不在0411了;改,则可能有大量的表要修改,可能造成不一致)
    不过,这样编码的时比较多的,实际上,产生编码时可以按照这个原则进行(如身份证号),但使用时则不认为前4位代表地区就行了--当然,需要别的属性描述地区、行业等。
    也就是说:“编码有规则,使用无规则”
      

  2.   

    TO:icevi(按钮工厂)
    但是实际上我觉得这个码已经成为数据的载体了,因为在数据表中不存在地区编码和行业编码两个字段,用户不可能没有地区和行业信息的,跟Haiwer(海阔天空)说的正好相反,某种程度上是以这个地区编码代表了用户所在的地区,这样做法应该是不对的吧,(可以再分)?如果考虑加上地区字段和行业字段,这个码中的前8位数据又成了数据冗余,这样同样也不符合范式理论。不知道这样反驳可不可以:),谢谢咯。TO:楼上,我也喜欢把它拆开,可是这个表不是我做的:(,做程序的好可怜。
      

  3.   

    不赞同“编码有规则,使用无规则” 这句话,这是很危险的思想,结果一定是乱作一团!
    必须 "编码有规则,使用也有规则",宁可如KingSunSha(弱水三千) 所说加冗余字段,不符合范式理论,也不能在使用规则上有任何疑义!