这被认为是正常形式的失败吗?

use*_*ser 5 sql database normalization

将用户的宗教信息存储在"用户表"中时,如果你向下看一列,你会多次看到"基督徒",多次看到"穆斯林"等等,认为是正常形式的失败?哪种形式?

我看待它的方式:

  • 1nf:没有重复的列.

  • 2nf:没有连接的主键,因此不适用.

  • 3nf:不依赖于nonkey属性.

以这种方式存储用户宗教似乎不会失败任何正常形式,但它似乎非常低效.评论?

Bil*_*win 6

您的设计支持所有正常形式.您的属性具有字符串值很好.数据类型的大小与规范化无关.

规范化的目标不是物理存储效率 - 目标是防止异常.并且支持逻辑效率,即仅存储给定事实一次.在这种情况下,给定行上的用户是基督徒的事实.