只是想知道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, ...}
Run Code Online (Sandbox Code Playgroud)
我认为大多数人都喜欢选项2,因为它是2NF,但我认为选项1更好,因为当我们查询它时它会更简单,更快捷.为什么在这种情况下我们需要2NF?
作为一个开始的DBA,你应该把所有东西都放到第三范式.这意味着,一行中的每一列都取决于:
根据经验,您可以选择有时因各种原因(通常速度)恢复到2NF,但这不是我作为初学者所担心的事情.