2011-03-18 26 views
2

我正在重新設計本地IP管理站點,並需要一些幫助。目前,存在與某個子網ID關聯的外鍵建立ID,以便客戶端知道該子網在哪個建築物中。但是,問題在於子網可能跨多個建築物分開。現在,子網到建築的範例已不復存在,但我無法正確處理這一問題。什麼是正確的方式來存儲在SQL Server列中的ID數組/元組

立即想到並且看起來很糟糕的一個選項是將building id字段更改爲逗號分隔的建築ID的字符串。它很快,它的工作原理,但它給了我一個不好的感覺。

想到的另一個想法是創建一個BuildingIDTuple表,其中可能存在將子網ID映射到buildingid的多行。

subnet id | building id 
------------------------ 
    1  |  2 
    1  |  3 

這種方法看起來更清潔,更具前瞻性,但我也可以想象,sql查詢導致許多令人頭痛的問題。

我認爲理想的方法是在子網表中有一個建築ID的數組,但我不認爲這些存在。

那麼,設計我在做什麼的最佳方法是什麼?任何幫助將非常感謝!

回答

8

只需創建額外的表格,所需的連接就不會那麼複雜。

解析逗號分隔的列表或任何東西會讓你頭痛。

+0

這就是我的想法,但你們已經消除了所有的疑問。謝謝你們! – bluefear 2011-03-18 14:59:52

5

從不在一個數據庫列中存儲一組值!將它們分解成一張新表格,每個值作爲一個單獨的行!否則,每次查詢時都會將這些CSV值分開。你的BuildingIDTuple表是要走的路。查詢並不困難,但您需要支持爲每個子網回送可能的多行。

相關問題