Trong nhóm nhà phát triển của chúng tôi, chúng tôi có một cuộc tranh luận gay gắt liên quan đến quy ước đặt tên cho Khóa chính và Khóa ngoại. Về cơ bản có hai trường phái suy nghĩ trong nhóm của chúng tôi:
1:
Primary Table (Employee)
Primary Key is called ID
Foreign table (Event)
Foreign key is called EmployeeID
hoặc là
2:
Primary Table (Employee)
Primary Key is called EmployeeID
Foreign table (Event)
Foreign key is called EmployeeID
Tôi không muốn trùng lặp tên của bảng trong bất kỳ cột nào (Vì vậy, tôi thích tùy chọn 1 ở trên). Về mặt khái niệm, nó phù hợp với nhiều phương pháp được đề xuất trong các ngôn ngữ khác, nơi bạn không sử dụng tên của đối tượng trong tên thuộc tính của nó. Tôi nghĩ rằng việc đặt tên cho khóa ngoại EmployeeID
(hoặc Employee_ID
có thể tốt hơn) sẽ cho người đọc biết rằng đó là ID
cột của Employee
Bảng.
Một số người khác thích tùy chọn 2 trong đó bạn đặt tên khóa chính được đặt trước tên bảng để tên cột giống nhau trong toàn bộ cơ sở dữ liệu. Tôi hiểu điểm đó, nhưng bây giờ bạn không thể phân biệt một cách trực quan khóa chính với khóa ngoại.
Ngoài ra, tôi nghĩ rằng việc có tên bảng trong tên cột là thừa, bởi vì nếu bạn coi bảng là một thực thể và một cột là một thuộc tính hoặc thuộc tính của thực thể đó, bạn nghĩ nó là thuộc tính ID của Employee
, không các EmployeeID
thuộc tính của một nhân viên. Tôi không đi một đồng nghiệp của tôi hỏi những gì mình PersonAge
hoặc PersonGender
là. Tôi hỏi anh ấy Tuổi của anh ấy là bao nhiêu.
Vì vậy, như tôi đã nói, đó là một cuộc tranh luận gay gắt và chúng tôi tiếp tục lặp đi lặp lại về nó. Tôi muốn có một số quan điểm mới.