Naming-Convention
處理與 PK 列的命名衝突的推薦方法是什麼?
我有一個
VARCHAR(18)
來自多個不同供應商的數據欄位“Shipment ID”。這將進入一個shipment
帶有代理 PK的表shipment_id
。我正在嘗試找出命名此列的最佳方式。我們的約定說:
- 只有 PK 或 FK 可以以
_id
.- PK 是
tablename_id
. 所以一張桌子hello_world
的 PK 是hello_world_id
.- 表和列是
lowercase_with_underscores
- 與名稱衝突無關(如果我在這裡得到一個好的答案,我會確保將其添加到樣式指南中。)
我知道它沒有遵循這個很棒的答案,但這就是我們所擁有的
我不能將“Shipment ID”欄位用作 PK,因為不能保證它是唯一的,甚至不存在。另外它是一個字元串,我不喜歡字元串 PK。
我真的不喜歡
shipment_name
或vendor_shipment_id
。遇到這種情況,大家都用什麼?
鑑於規定的規則,
shipment_id_from_vendor
將優於vendor_shipment_id
(不以 結尾_id
,因此預計不會是 PK/FK 欄位)。一般來說,對我來說,名稱衝突意味著一個或兩個名稱需要更好的定義,以澄清它們是不同的值。甚至應避免近乎衝突:如果您有需求日期和請求日期,則使用名稱
req_date
並request_date
沒有特別的幫助;有人可能正在尋找請求日期,請參閱req_date
並假設他們已經找到了他們想要的東西。requirements_date
打字可能要長得多,但它是什麼立刻就清楚了,沒有人會把它和request_date
.也就是說,沒有通用的解決方案。我對長表名和列名沒有任何問題,如果需要讓它們清楚的話;其他人會堅持簡潔是關鍵,並將上一段中的兩列
reqr_date
和rqst_date
.