Database-Design

如何將其他表(實體)連結到父類和子類?

  • January 25, 2022

我無論如何都不是開發人員,但我對關係數據庫的工作原理和各種類型有相當好的了解。我正在嘗試映射數據庫設計圖(使用 Visio),並且需要了解如何以正確的方式為需要引用父/子類別的表表示正確的關係。

例如:連結到產品父類別表(包含 3 種不同產品類型的參考表)的成員/資料表,該表還具有每個父類別的 2 層子類別,作為向下鑽取到更具體產品的樹狀結構。我了解父/子關係,但我需要將成員/配置文件錶鍊接到父類別表(它固有地連結到子類別),還是需要將成員/配置文件表分別連結到所有三個表(父表和兩個子表)。

為了確保這是正確的,我試圖在圖中表示的是,該數據庫將用於驅動前端網站,並且當使用者從下拉列表中選擇父類別類型時,根據選擇的類別,它然後將顯示相關子類別的適當下拉列表,允許特定產品類型和子類別產品與成員相關聯。

我希望這是有道理的,並且我已經以有人會理解的方式對此進行了解釋。我只需要知道如何在 Visio 中正確表示這一點。

我將建議一個替代解決方案。

與其嘗試在 Visio 中模擬數據庫設計,不如在關係數據庫中創建數據庫設計?完成後,您可以使用軟體從您的實際數據庫創建數據庫圖。大多數關係數據庫都內置了數據庫圖表,如果內置圖表不符合您的需求,則有多種第三方替代品,其中許多是免費的,或者有試用期。

這種方法的優點是進行實際設計將幫助您思考您的選擇,即使它最終不是最終設計,您也可以將工作作為起點。

我認為通過將數據庫的需求與滿足該需求的過程混為一談,您的生活可能會變得更加複雜。

數據庫是業務數據的靜態表示。如果我正確理解了您的問題,那麼您有兩個步驟可以達到所需的最終狀態。在第一步中,使用者選擇一個頂級類別,然後在第二步中,他們根據類別之間的父/子關係從選項中選擇一個較低級別的類別。

您的數據庫中只需要一個關係:您的對像有一個指向較低級別類別的外鍵。這就是您保存在數據庫中的內容。

除非您的使用者界面允許您保存具有頂級類別(而不是較低級別類別)的對象,否則對象與頂級類別之間沒有關係,除了通過較低級別類別的間接關係

引用自:https://dba.stackexchange.com/questions/164150