2011-07-14 37 views

回答

2

欄目應根據它們表示的數據元素進行命名,而不是基於 適用於他們什麼約束的外鍵。主鍵列的命名方式應與您爲其他列命名的方式相同。 ISO 11179 standard爲命名數據元素提供了一些有用的指導。

0

這非常符合db的設計者。當我這樣做時,我將主鍵的字段名稱:外鍵的id和字段名稱:tablenameId

0

我總是嘗試使用PK和Foriegn鍵以FK啓動主鍵。另外,當命名foriegn鍵時,我嘗試在foriegn鍵的名字中包含表名和列名:FK_Questions-test-id_Tests-seq-num將是表問題到表測試的一個foriegn鍵,其中questinos.test_id = tests.seq_num。我認爲這有助於在你看到你的鑰匙時爲它們命名。

1

如果該表被稱爲Test我會打電話給PK欄TestID

+0

+1 - 我會稱它爲TEST_ID,並不是每個RDBMS都支持混合大小寫。 –

0

確實沒有定義標準;相反,您應該制定自己的約定,並確保您定義的每個主鍵都符合該約定。

2

我喜歡on Rails的約定紅寶石:

  • 任何表中的主鍵是自動遞增稱爲id
  • 外鍵被命名爲外來表名加上_id整數列。例如:
    • country_id是對應於記錄從countries
+0

我也傾向於使用這個約定(儘管我使用PHP/Zend Framework),但是對於同一個表有多個外鍵的表呢? **示例:**'order'有兩列引用同一個表'user':誰是創建訂單的用戶,誰是批准的用戶。 –

+1

在這種情況下,您將不得不違反慣例,但我建議使用明顯的名稱,例如creator_user_id和approver_user_id或created_by和approved_by。 – Teddy

+0

這就是我最終做的事情,但是我無法穩定一個約定來滿足這個_convention-breaker_ need。 :D –