簡體   English   中英

正確的數據庫設計/關系

[英]Correct Database Design / Relationship

下面,我顯示了我建議的數據庫表的基本示例。

我有兩個問題:

  1. 類別“ 工程 ”,“ 客戶 ”和“ 供應商 ”將具有完全相同的“ 學科 ”,“ DocType1 ”和“ DocType2”,這是否意味着我必須在“ 分類 ”表中輸入這3次,還是更好的方法? 請記住, 分類表中也包含“ 供應商 ”類別。

  2. 在“ 文檔 ”表中,我顯示了“ category_id ”和“ classification_id ”,我不確定這是否取決於第一個問題的答案,但是“ category_id ”是否必要,還是我應該使用JOIN來讓我來過濾基礎上,classification_id類別?

先感謝您。

表: 類別

id | name        
---|-------------
1  | Engineering 
2  | Client      
3  | Vendor      
4  | Commercial

表: 學科

id | name        
---|-------------
1  | Electrical
2  | Instrumentation      
3  | Proposals

表格: DocType1

id | name        
---|-------------
1  | Specifications
2  | Drawings      
3  | Lists  
4  | Tendering

表: 分類

id | category_id | discipline_id | doctype1_id | doctype2 
---|-------------|---------------|-------------|----------
1  | 1           | 1             | 2           | 00        
2  | 1           | 1             | 2           | 01        
3  | 2           | 1             | 2           | 00     
4  | 4           | 3             | 4           | 00

表: 文件

id |      title      | doc_number | category_id | classification_id 
---|-----------------|------------|-------------|-------------------
1  | Electrical Spec | 0001       | 1           | 1
2  | Electrical Spec | 0002       | 2           | 3
3  | Quotation       | 0003       | 3           | 4

表關系

根據您提供的內容,看起來我們有三個簡單的查找表:category,學科和doctype1。 對我而言,直觀上不明顯的部分可能還會導致您的困惑,因為最后兩個表都用作查找表的交叉引用。 尤其是分類表似乎不合適。 如果只有類別,學科和文檔類型的某些組合曾經是有效的,則分類表才有意義,而正確的做法是通過文檔表中的分類ID查找該有效組合。 如果不是這種情況,那么您可能只想直接從文檔表中引用類別,學科和文檔類型。

在您的示例中,文檔表具有對分類表的引用和對類別表的引用這一事實說明了進行這種區分的需要。 但是,在分類表中查找的行也引用了類別ID。 這不僅是多余的,而且為類別ID沖突的可能性打開了大門。

我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM