AdventureWorks表具有插入/更新/刪除異常。這是不是認爲糟糕的設計?AdventureWorks有插入/更新/刪除異常?
以下表爲例。
Sales.SalesReason(SalesReasonID, Name, ReasonType, ModifiedDate)
其中ReasonType是類型爲nvarchar(50)
我們不應該有ReasonType另一個表因此模型是這樣的:
SalesReason(SalesReasonID, Name, ReasonTypeId, ModifiedDate)
ReasonType(ReasonTypeId, Name)
這樣做的更新時, ReasonType的名稱只能在一條記錄上進行更改(防止更新異常)。此外,它將通過保留db中的可用類型來防止刪除/插入異常,而不管是否存在與它們相關的實際數據。
我可以對此事有你的想法嗎?
感謝您的回答。 我不確定你是否正確理解我,可能我不是很清楚。讓我們拿這個數據爲例: SalesReason: '(1,「Name1」,「Some Reason」,1/1/2001), (2,「Name2」,「Some Reason」,6/5/2001) , (3,「Name3」,「Some other reason」,7/6/2001), (4,「Name4」,「Best Reason」,8/9/2001)' – poke 2012-03-05 15:40:39
所以,我想改名「有理由」改爲「有全新名字的原因」。爲了做到這一點,我必須做兩行更新。這是一個簡單的例子,但可以說我有其他具有ReasonType列的表。如果我把它當作一個外鍵,那麼我只需要在ReasonType表上更新該單個記錄上的名稱。此外,僅僅通過查看數據庫,我並不真正知道什麼是可用的和可能的原因類型。 你對此有何評論? – poke 2012-03-05 15:40:46
剛剛發現一個主題,支持聲明,AdventureWork有異常,請看看:[http://stackoverflow.com/questions/4824024/how-important-are-lookup-tables](http://stackoverflow.com/ question/4824024/how-important-are-lookup-tables) – poke 2012-03-05 18:24:45