只是想知道什么时候2NF可能没有必要。

Option 1. ORDERS {orderId (pk), custId (fk), total, date, status, ...}
   PARTS {orderId (pk), partsId (pk), qty, unitPrice, description, ...}

Option 2. ORDERS {orderId (pk), custId, total, date, status, ...}
   ORDER_PARTS {orderId (pk)(fk), partsId (pk)(fk), qty, ...}
   PARTS {partsId (pk), unitPrice, description, ...}

我认为,大多数人喜欢选项2,因为它是2NF,但我认为选项1更好,因为当我们查询它们时,它会更简单、更快。为什么在这种情况下我们需要2NF?

最佳答案

作为一个开始的dba,您应该将所有内容都转换成第三种标准形式。也就是说,一行中的每一列都依赖于:
钥匙(1NF)。
整把钥匙(2NF)。
只有钥匙(3NF)。
有经验的话,你可以因为各种原因(通常是速度)选择有时恢复到2NF,但作为一个初学者,这不是我担心的。

关于database - 为什么需要2NF?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/954052/

10-12 02:40