Naming-Convention
命名引用另一個表列的第二個附加列?
我正在使用數據庫中的一個表,該表引用另一個表中的列。如:
Product Table ------------ Id Description Currencies_Code Currencies ------------ Id Code Description
我們有約定:
“外鍵欄位應該是被引用表名和被引用欄位名的組合。”
我的列:ExternalTableName_ColumnName
直到那裡,一切都很好。現在,應添加第二列,以引用貨幣表“程式碼”列,以用於應使用另一種貨幣的第二種情況。
我最初的想法是使用這些列:
貨幣_程式碼_內部
貨幣_程式碼_外部
但是,後綴 Internal/External 打破了慣例。
在這種情況下,哪種命名方式最適合更改約定?
您可能會認為違反約定實際上表明設計中有錯誤或效率低下:
例如,
我將為此創建一個查找表,而不是在表中出現兩次相同的外鍵欄位。
Product Table ------------ Id Description Product_Currencies Table ------------ Product_Id Currencies_Id Condition_Id Condition Table ----------------------- Id Description Currencies ------------ Id Code Description
實際上,Product_Currencies 表形式化了這種關係:給定這個條件,使用這個貨幣作為這個產品。
條件表可能包含以下值:
Condition ID Description ---------------- 1 Internal 2 External
命名約定被打破可能是設計有問題的徵兆——許多約定的部分目的是在違反時引起問題。
在一個表中包含兩個
Currencies_Code
意味著有條件使用,這可能意味著需要另一個關係來描述它。如果您必須對原始問題有答案:
這完全完全取決於誰執行和/或編纂您的標準。