Naming-Convention

命名引用另一個表列的第二個附加列?

  • June 3, 2015

我正在使用數據庫中的一個表,該表引用另一個表中的列。如:

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意味著有條件使用,這可能意味著需要另一個關係來描述它。

如果您必須對原始問題有答案:

這完全完全取決於誰執行和/或編纂您的標準。

引用自:https://dba.stackexchange.com/questions/103197