2013-10-17 26 views
1

我在Access中的數據庫有一個名爲Program的表,其主鍵是Program ID。我還有其他一些表格,其中包含與計劃表格中的計劃有關的其他信息。這些表中的每一個都有其中的字段Program ID。例如:我有一個名爲[附加主題]的表。 [附加主題]表格具有多個值字段,用於存儲有關與程序關聯的主題和子主題的信息。程序ID字段將程序表格與[其他主題]結合在一起。 [附加主題]表中的程序ID沒有重複項(因爲我有其他字段作爲多個值字段)。所以,我的問題是,我應該將Program ID作爲[Additional Topics]表的主鍵,還是應該爲其創建一個單獨的ID字段? 請幫助 謝謝多個表中的一個字段主鍵

+0

這樣一個程序只有一個額外的話題? – mosaad

+0

@ mosaad。不,一個程序可能有一個或多個其他主題。 [附加主題]共有3個領域的計劃編號,主題,分主題。主題和子主題字段是允許選擇多個值的下拉列表。因此[附加主題]表中的每個程序ID最終只有一個記錄。我希望這是有道理的。 – ksagar

回答

0

簡短的回答沒有

如果ProgarmID只有在附加主題表中只出現一次,這將是一個1對1的關係,你應該問問自己,你需要單獨的表或者你可以將這些字段添加到「程序」表中。

我認爲使用外鍵()作爲主鍵的唯一原因是作爲主鍵由兩個外鍵組成的主鍵的一部分。

+0

這是否意味着,如果我將附加主題表中的字段添加到程序表中並刪除附加主題表,它會更好。 – ksagar

0

由於一個程序可以有一個或多個其他主題則是不可能的,程序ID是其他主題獨特,所以你必須使用另一個ID和程序ID將只是一個外鍵

+0

好的。我還有另外一個疑問,雖然它對於這個問題略微沒有主題。我正在將訪問表遷移到sql server 2008.所以,在sql server中有多值字段是個好主意嗎?或者我應該在遷移到sql server之前擺脫訪問中的所有多值字段。 – ksagar

+0

我不喜歡多值字段的豐富經驗,但根據http://dbaspot.com/sqlserver-server/457974-multi-valued-fields-does-ss8-support.html使用它們不是一個好主意 – mosaad

相關問題