谁能通俗的说说,举个例子,什么是满足第一范式,第二范式,第三范式?
谁能通俗的说说,举个例子,什么是满足第一范式,第二范式,第三范式?
----------------------------------------------------------------------
看看书,但还是不太了解。
另外,一般在实际的项目中,一般应该满足什么范式呢?
举例吧。一个入库单master表,和detail表。
一般都是两个表,master表有:
入库单号,流水号,入库时间,入库方式,进货方编码,。。。
detail表有:
入库单号,入库商品编码,入库数量,入库金额...
,但是还有有进货方表,包含进货方编码与名称等字段。
,还要有商品编码有,包含商品编码与商口名称等信息字段。
,其实还会有更多的表。
这种设计是满足第三范式吗?
但是我认为并不好,因为每次查询时都要连接多张表(我刚才只举出四个表,其实际上应该会更多),所以我认为并不好。
所以我认为,将进货方名称直接放到 master 表中即可。就是多占些空间,没什么不好。
另外,我将商品名称放在 detail 表中,也是多占些空间,没什么不好。
而且还有好处,就是如果进货方如果改名了。历史记录不会变化。(如果按照范式化要求,进货方一改名,历史记录全改了)
同样,如果商品改名也一样,历史记录不会改变,(因为有时,历史记录是不能变化的,因为要保证当时的原始状态呀,随例改是不严谨的。)
不知我以上的理解对不对。
----------------------------------------------------------------------
看看书,但还是不太了解。
另外,一般在实际的项目中,一般应该满足什么范式呢?
举例吧。一个入库单master表,和detail表。
一般都是两个表,master表有:
入库单号,流水号,入库时间,入库方式,进货方编码,。。。
detail表有:
入库单号,入库商品编码,入库数量,入库金额...
,但是还有有进货方表,包含进货方编码与名称等字段。
,还要有商品编码有,包含商品编码与商口名称等信息字段。
,其实还会有更多的表。
这种设计是满足第三范式吗?
但是我认为并不好,因为每次查询时都要连接多张表(我刚才只举出四个表,其实际上应该会更多),所以我认为并不好。
所以我认为,将进货方名称直接放到 master 表中即可。就是多占些空间,没什么不好。
另外,我将商品名称放在 detail 表中,也是多占些空间,没什么不好。
而且还有好处,就是如果进货方如果改名了。历史记录不会变化。(如果按照范式化要求,进货方一改名,历史记录全改了)
同样,如果商品改名也一样,历史记录不会改变,(因为有时,历史记录是不能变化的,因为要保证当时的原始状态呀,随例改是不严谨的。)
不知我以上的理解对不对。
...全文
相关推荐
数据库设计的第一范式第二范式第三范式描述和实例
简而言之,第一范式就是无重复的列。二、第二范式(2NF)第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。
数据库中第二范式、第三范式的应用解析
范式从低到高依次为第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及更高级别的鲍依斯-科得范式(BCNF),每一种范式都旨在解决数据冗余和操作异常的问题。
数据库范式(1NF_2NF_3NF_BCNF)详解
#### 二、第二范式(2NF)第二范式是基于第一范式之上的一种更严格的规范化形式。它要求表中的每一列不仅要满足第一范式的要求,还必须完全依赖于主键,而不是仅仅依赖于主键的一部分。
SqlServer 第三范式
常见的范式有第一范式、第二范式、第三范式等。
db设计之第三范式讲解
以下是第一范式、第二范式和第三范式的详细解释:**第一范式(1NF)**:1NF 是最基本的要求,它规定数据库表的每一列都应是不可分割的基本数据项。这意味着每个字段只存储单一值,不允许有复合字段。


