Database-Design

在一個產品表中統一特定表

  • January 3, 2022

今天我的數據庫中有第一張圖片中的表格。問題是現在我需要進行庫存控制,並且還會添加其他產品。

設備和 SIM 卡

為了支持多種類型的產品,我首先設計了下圖中的表格(設計 1)。對於沒有任何類型的序列號來區分它們的通用產品,這將是一個解決方案。

在做了一些研究後,我在下一張圖片(設計 2)中找到了解決方案。這支持通用和特定產品(如 SIM 卡和設備)。我認為這樣複雜度會大大增加。還有一個問題是我在 SIM 卡和設備中有 FK。該解決方案的一大優點是它將支持具有特定數據的未來產品。

在此處輸入圖像描述

解決此問題的最佳方法是什麼?

為什麼不添加product_type_attributes到設計 1 中?如果product_type_attributes有必要並且它有多種類型,那麼設計 2 與設計 1 相比要好得多,因為它更加規範化。

我傾向於認為您需要產品和製造商之間的交叉表。一個產品是否不可能提供給我一個以上的製造商和/或一個製造商提供一個以上的產品?

除此之外,您應該採用任何設計為您提供所需的功能。你為什麼還要擔心複雜性?如果增加的複雜性可以滿足您的需求,那麼不要質疑複雜性。您的設計必須盡可能複雜,才能為數據庫提供所需的所有優勢和功能。不會比這更複雜——但也不會更少。

我去過許多商店,其中重要的功能沒有在最終設計中實現,以降低設計的複雜性。是的,更多的複雜性使維護更加困難。但我們的工作是讓使用者的工作更輕鬆,而不是我們自己的。

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