2012-04-30 33 views
0

我即將創建一個數據庫,其中的字段會顯示在幾個不同的表中(如鍵)。例如,在我的列表中,我將擁有MLS_ID。該字段也會出現在listing_photos表中。我應該在字段名稱前加上唯一的名稱:listings_MLS_ID作爲示例嗎?我應該如何命名關係數據庫中的字段?

+0

我建議給列在每個表上同一名稱在其內出現(它使連接條件更容易 - 人們可以使用USING或甚至NATURAL JOIN來合併公共列)。 – eggyal

+0

對此有不同的意見:http://programmers.stackexchange.com/questions/114728/why-is-naming-a-tables-primary-key-column-id-considered-bad-practice – Brad

回答

2

這樣做絕對沒有意義。你總是可以用你的字段名和數據庫和表名稱作爲前綴,得到你的唯一標識符,保持名字本身簡潔明瞭。

listings.mls.id 

將在屬於listings數據庫mls表處理一個id字段。

這將是非常靈活的:任何時候你需要長的唯一標識符 - 你有它。
在所有其他情況下,您可以使用短名稱。

0

這是個人偏好。

對我來說:

我不與本地表名稱的前綴,除了主鍵。例如 PERSON表將獲得PERSON_ID列,ADDRESS表將獲得ADDRESS_ID等。

PERSON_ADDRESS表獲取PERSON_ID和ADDRESS_ID,而不是別的。

在您的查詢中,當它們應該與鍵等效時,列名相同,並且表別名告訴您哪個是哪個。

1

將兩個表中的密鑰命名爲相同(MLS_ID)。數據庫服務器獎勵你通過讓這樣做,你使用更簡潔USING條款:

SELECT * FROM listings 
JOIN listing_photos 
    USING (MLS_ID) 

比這更確切地說:

SELECT * FROM listings 
JOIN listing_photos 
    ON listing_photos.listings_MLS_ID = listings.MLS_ID 
+0

不是那麼大的真的是一種獎勵,特別是在ORM的日子和年齡。 – webbiedave

相關問題