【发布时间】:2012-03-22 14:20:23
【问题描述】:
AdventureWorks 表存在插入/更新/删除异常。这不被认为是糟糕的设计吗?
我们以下表为例。
Sales.SalesReason(SalesReasonID, Name, ReasonType, ModifiedDate)
其中 ReasonType 的类型为 nvarchar(50)
我们是否应该为 ReasonType 提供另一个表,所以模型看起来像这样:
SalesReason(SalesReasonID, Name, ReasonTypeId, ModifiedDate)
ReasonType(ReasonTypeId, Name)
这种方式在更新 ReasonType 的名称时,应该只在一条记录上进行更改(防止更新异常)。此外,它将通过将可用类型保留在 db 中来防止删除/插入异常,而不管是否有与它们相关的实际数据。
我能谈谈你对这件事的看法吗?
【问题讨论】:
标签: database-design normalization