2

我的數據庫中有一個作業(工作)表和一個工具表。刀具表分爲兩部分,第一部分是刀具類別(tool_category),另一部分是刀具數據(common_tools)。SQL Server中的數據庫表關係

現在我想問的是,我有一個工作表單,我必須從不同類別(tool_category)的工具(common_tools)中選擇一些下拉字段。我在下面給出兩種方法。請建議哪一個更好,爲什麼。

方法1

我創建了一個表「tools_in_jobs」,其中包含三個字段,我們可以用這個知道,選擇在工作形式,類別,它的工具價值。

enter image description here

方法2

另一種方法是,而不是爲所有工具,我們可以爲每個工具創建單獨的表等顯示在下面的圖中的共同的表。但有一點需要注意的是,這兩個表(job_faculty和job_expertise)只是例如可能有5到6個這樣的表,因爲我使用了來自不同類別的5到6個工具。

enter image description here

請還建議,如果有任何其他建議。

回答

2

我真的不明白你想要完成什麼,但我可以說的是方法2並不是很好。每個工具的表格?哪一個都有相同的字段?吶!這是一個巨大的開銷,並且與程序中的「重複代碼」相當。我認爲可維護性,可擴展性等也非常糟糕。

然後接近一 - 我不明白爲什麼「tools_in_job」表與工具和類別有關係 - 工具不夠用嗎?(看起來像是無用的冗餘)或者是什麼這個類別的含義是什麼?

正如我所說的,你真的需要爲你想要完成的事情提供更好的解釋。我將編輯。

+0

是的你是對的,我們可以從tools_in_job表中刪除tool_category_id,因爲它已經與common_tools相關,並且與類別相關。感謝您的回覆,因爲我在這裏得到了我的答案。 – 2013-04-11 11:42:54

0

當然,方法1是首選方法,但是可以從作業中刪除tool_category_id,還可以刪除tools_in_job和tool_category之間的關係以規範設計。

方法2意味着每次添加新工具,編寫和維護更多代碼,維護更多表和索引以及使用更多存儲時,都會創建一個新表。

+0

感謝您的回覆。在tenhouse的建議後我已經做了這些改變。 – 2013-04-12 06:17:11