2013-12-03 34 views
3

當我的「業務」表或列名恰好是保留字時,我對在PostgreSQL中使用帶引號的標識符保持警惕。是否有任何標準或最佳實踐方法?我希望有一個一致的mangling機制,因爲這裏還有一些代碼生成功能,並且需要能夠自動在PostgreSQL中使用的重名名稱和代碼中使用的非重名名稱之間來回轉換。保留列或表名稱的標準修改

回答

2

爲了保證所有名稱不是保留字,用「mangle」術語最簡單也是最好的方法是在它們前面加下劃線字符。

最好的方法是不要使用保留字 - 讓DBA爲業務術語和數據庫術語之間的任何衝突選擇名稱。

還要考慮可能與應用程序語言中的保留字發生衝突的術語。

0

我喜歡爲服務器端函數中的參數和變量保留下劃線前綴(_name)以排除衝突。最近我在使用函數的人中看到了很多。

對於數據庫對象的標識符,我手動選擇名稱。使用非英文條款(縮寫爲ASCII字母)可避免大部分衝突。

另一種替代方法是對錶名使用複數表,因爲大多數保留字都是單數形式(有一些例外!)。

大多數單字母前綴都會毫無例外地完成這項工作。像:n_name。但是由於我手工挑選標識符,因此不需要自動化。

任何東西是很好的,避免了雙引號錯誤發生的需要。即使Postgres允許他們,我也不會使用reserved words