0

我真的是新來的數據庫設計,因爲我現在將演示:數據庫規範化 - 如何確定沒有關係的表?

我有一個MS Sql數據庫,我需要添加一個表。該表包含與另一個表有關的信息。但是,主鍵沒有候選項(所有字段都可以重複)。該表唯一會用於保存特定類型查詢可能需要的記錄,並且可以使用其他表包含的字段(但從不唯一)超級輕鬆地檢索它們。

具體來說,我的主表有一堆化學記錄。每個化學記錄都與稱爲質量控制記錄的另一組記錄相關聯(在我的第二個表格中)。它們由稱爲「BatchID」的字段關聯。超容易的部分是,我可以說,「用這個BatchID獲取所有記錄」,並得到我所需要的。但是在兩個表中都可以有多個BatchID的實例(實際上通常有),所以我需要跳過鏈接來鏈接它們。從更廣泛的意義上講,理論上,有一張表可以不附着在任何東西上嗎?

絕對簡單的解決方案是將質量控制放在與化學表無關的分貝中。我需要插入至少一個其他表,以將它與其他任何東西(也許更多)相關聯,這樣使我的生活複雜化的唯一原因是我不想違反數據庫設計的一些重要規則。

我的問題是,是否可以在數據庫中有一個自由浮動的表?還是那個出來?

感謝您的任何幫助。

+1

您發佈的場景太抽象了,我無法理解。你能舉一個更實際的例子嗎? (即,「某種查詢」是什麼意思?)。你確實描述了一種關係(「他們可以使用其他表格也包含的字段來超級輕鬆地檢索」),所以如果你還可以擴展它,這將有助於回答問題。 – Oded

+0

感謝您的回覆。我的主表有一堆化學記錄。每個化學記錄都與稱爲質量控制記錄的另一組記錄相關聯(在我的第二個表格中)。它們由稱爲「BatchID」的字段關聯。超容易的部分是,我可以說,「用這個BatchID獲取所有記錄」,並得到我所需要的。但是在兩個表中都可以有多個BatchID的實例(實際上通常有),所以我需要跳過鏈接來鏈接它們。從更廣泛的意義上講,理論上,有一張表可以不附着在任何東西上嗎? – Stanton

+0

您可以編輯問題並將其添加到它的細節,而不是在評論?評論被認爲是次要的,有些人可能不會閱讀。 – Oded

回答

1

理論上,沒有任何外鍵約束的表是可以的。但是你描述的表格(你描述的兩張表)應該是,可能有一個引用批次表的外鍵。我們期望批量表具有「BatchID」作爲其主鍵。

關係模型要求表具有至少一個候選鍵。有一個沒有候選鍵的SQL表幾乎總是一個壞主意。

+0

謝謝Catcall。 – Stanton