在关系数据库设计中,存在数据库规范化或简单规范化的概念,其是组织列(属性)和表(关系)以减少数据冗余和改善数据完整性的过程.(如维基百科上所写).
由于大多数文章都是技术性的,因此难以理解,我要求有人根据1NF,2NF,3NF甚至3.5NF(Boyce-Codd)的含义的例子写出一个更容易理解的解释.
我在1NF形式的DBMS中读过类似下面的内容.
有一句话如下:
"每列都应该是原子的."
任何人都可以通过一个例子向我解释一下吗?
只是有一个编写SQL的问题.
在ORACLE DB中,我在一个"APPLE"表中有不同的苹果行,其中"TAGS"包含此类苹果的所有功能.例如:
NAME, TAGS
-----------
APPLE1, FUJI BOXED MEDIUM CALIFORNIA ...
APPLE2, ORGANIC GALA PER_POUND LARGE FLORIDA ...
APPLE3, RED_DELICIOUS MEDIA PACKED ORGANIC ...
APPLE4, LARGE RED_DELICIOUS Mexico ....
APPLE5, PACKED FUJI MEXICO LARGE
Run Code Online (Sandbox Code Playgroud)
现在我想要一个SQL查询来查找具有任何给定标记值的所有行,例如,"FUJI MEDIUM MEXICO".这个SQL怎么样?
这与我正在进行的一个项目有关.在数据库中,为什么我有一个"TAG"列保留所有功能而不是单独的列,这是因为我们知道会引入越来越多的新标签值,所以我们不会添加越来越多的列喜欢将它们保存在一列中,这样代码不需要每次都更改.
谢谢,
插口