在多個數據庫表中維護唯一ID字段的最佳方法是什麼?數據庫設計 - 如何將FK關係設置爲2個表中的1個?
我的數據庫同時包含企業和人員,而且這兩個實體都需要有一個與之關聯的唯一ID字段。此外,還有其他表格(例如地址)可以引用業務或使用其ID作爲外鍵的人員。
一些想法我想到的是:
使用時插入一排被計算的非自動編號的ID字段。這將解決我獨特的問題,但隨後我想要通過相關屬性(例如地址)查找某些內容時,我必須檢查兩個表中是否包含我正在查找的記錄。
在AutoNumber ID中添加一個前綴以標識要查找ID的表,但是那麼在關聯表中我的ID字段可能會變成字符串或包含與它們關聯的表的標誌,而我不知道這將如何影響性能。
將人員和企業合併到一張表中。我的問題是人和企業有不同的屬性,需要單獨的字段,這種情況違背了我的本性,因爲我更喜歡爲單獨的實體分開表。
創建一個主表,其中包含一個唯一的ID字段,Person或Business的ID字段以及一個標記來說明它是哪一個。然後使用該ID作爲我的外部參考#和所有關聯的表中。
處理這個,我不知道一些更好的辦法,因爲我不是一個DBA
什麼解決方案我去需要能夠輕鬆地處理大量的記錄(在數據庫這是要取代有幾百萬條記錄),並在MS Sql服務器
你是說當引用外鍵時,列需要以某種方式指示該鍵是業務還是人(即是否在業務表或人員表中查找鍵)? – CodingGorilla 2010-06-18 19:07:38
我認爲前兩個答案錯過了將FK指向2個獨立表中的1個的觀點。 – MJB 2010-06-18 19:09:47