私たちの開発グループでは、主キーと外部キーの命名規則に関して激しい議論があります。私たちのグループには、基本的に2つの考え方があります。
1:
Primary Table (Employee)
Primary Key is called ID
Foreign table (Event)
Foreign key is called EmployeeID
または
2:
Primary Table (Employee)
Primary Key is called EmployeeID
Foreign table (Event)
Foreign key is called EmployeeID
私は、どの列でもテーブルの名前を複製しないことを好みます(したがって、上記のオプション1を好みます)。概念的には、プロパティ名にオブジェクトの名前を使用しない他の言語で推奨されている多くの慣習と一致しています。私は、外部キーに名前を付けるとEmployeeID
(またはそれEmployee_ID
よりも良いかもしれません)、それが表のID
列であることを読者に伝えると思いますEmployee
。
列名がデータベース全体で同じになるように、テーブル名を前に付けた主キーに名前を付けるオプション2を好む人もいます。その点はわかりましたが、主キーと外部キーを視覚的に区別することはできなくなりました。
また、私はそれはあなたがエンティティとそのエンティティのプロパティまたは属性として列としてテーブルを考えるならば、あなたはのID属性と考えるので、列名にテーブル名を持つように冗長だと思うEmployee
、ありませんEmployeeID
従業員の属性。私は同僚に何を言っているのPersonAge
か尋ねませんPersonGender
。私は彼に彼の年齢は何であるか尋ねます。
だから私が言ったように、それは激しい議論であり、私たちはそれについて何度も何度も繰り返します。私はいくつかの新しい視点を得ることに興味があります。