2010-08-29 65 views
51

Tôi tìm thấy Naming Guidelines từ MSDN, nhưng đó có phải là hướng dẫn cho cơ sở dữ liệu MSSQL của Microsoft không?Quy ước đặt tên cơ sở dữ liệu của Microsoft?

+2

Có những câu trả lời tuyệt vời bên dưới, nhưng tôi sẽ thêm những điều sau đây: Đồng ý và tuân theo một quy ước trong tổ chức của bạn để tổ chức DB của bạn (bao gồm đặt tên) cũng quan trọng. Ví dụ, chúng tôi cố gắng giữ các cột khóa chính trước tiên, theo sau là tất cả các cột khóa ngoài để bạn có thể tìm nhanh mối quan hệ, theo sau là tất cả các cột bổ sung theo thứ tự bảng chữ cái để bạn có thể tìm cột bạn muốn khi bảng có nhiều cột . Sự khôn ngoan của các công ước cụ thể của chúng tôi là gây tranh cãi, nhưng giá trị của việc có cuộc trò chuyện đó trong nhóm của bạn có lẽ là không. –

Trả lời

99

Quy ước đặt tên được sử dụng trong cơ sở dữ liệu AdventureWorks của SQL Server thể hiện nhiều phương pháp hay nhất về phong cách.

Để tóm tắt:

  • tên Object có thể dễ dàng hiểu
  • tên Bảng không thành số nhiều ("Người dùng" bảng không phải là "Người dùng")
  • viết tắt là số ít, nhưng cho phép (ví dụ Số lượng , Amt, v.v.)
  • PascalCase được sử dụng độc quyền với các tên cột ngoại lệ của một số tên cột nhất định (ví dụ: rowguid)
  • Không gạch dưới
  • Cho phép một số từ khóa nhất định (tức là Name)
  • thủ tục lưu trữ được mở đầu với "USP"
  • Chức năng được mở đầu với "ufn"

Bạn có thể tìm thêm chi tiết ở đây:

Một lưu ý: quy ước đặt tên cơ sở dữ liệu có thể rất gây tranh cãi và hầu hết các nhà phát triển cơ sở dữ liệu tôi đã gặp đều có cổ phần cá nhân theo phong cách của họ. Tôi đã nghe những tranh luận nóng về việc liệu một bảng có nên được đặt tên là "OrderHeader" hay "OrderHeaders".

+2

Tôi thích rằng bạn liên kết đến bài viết gốc, và tôi thực sự yêu bạn bực mình để tóm tắt cho mọi người. Ước gì tôi có thể upvote hai lần. –

+0

@ 8kb về tên cơ sở dữ liệu thì sao? Đa nguyên? –

+0

Sáu năm sau và vẫn nhận được +1 cho một câu trả lời cũng đặt ra với các liên kết và tóm tắt tốt. – AgapwIesu

10

Không, không có nhưng thực tiễn trong liên kết bạn cung cấp là điều tốt để ghi nhớ.

Đối với những tên thủ tục lưu trữ - làm không tiền tố họ với "sp_" Bạn có thể read more about why in this link:

"Đừng tiền tố thủ tục lưu trữ với sp_, bởi vì tiền tố này được dành riêng cho xác định các thủ tục được lưu trữ trên hệ thống . "

+1

Tôi đã thêm báo giá có liên quan từ bài viết vì nó ngắn và chúng tôi không thể mong đợi liên kết tới bài đăng 5 tuổi để tồn tại mãi mãi. – Gabe

+1

sp_ không được bảo lưu nó chỉ làm cho SQL Server tìm kiếm các thủ tục hệ thống trước khi tìm kiếm các quy trình do người dùng xác định. –

4

Tôi không biết "thực hành tốt nhất về phong cách" là gì trong câu trả lời của @ 8kb (tại thời điểm viết bài) có nghĩa là. Chắc chắn một số mặt hàng được liệt kê ("Tên bảng không được số nhiều", "Không gạch dưới", vv) là lựa chọn phong cách đơn thuần rõ ràng là chủ quan. Tôi đã có thể nghĩ rằng sở thích cá nhân của nhóm dẫn đầu tài liệu sẽ là yếu tố lớn nhất ở đây.

Liên quan đến chẩn đoán trong SQL nói chung (trái với SQL độc quyền như T-SQL), có một cuốn sách về chủ đề: Joe Celko's SQL programming style. Nhiều sự lựa chọn cho cơ sở dữ liệu AdventureWorks của SQL Server xung đột với hướng dẫn của Celko.

Quy ước đặt tên của Celko dựa trên tiêu chuẩn quốc tế ISO 11179 ví dụ: xác định rằng một ký tự phân cách (chẳng hạn như dấu gạch dưới) nên được sử dụng để phân tách các phần tử trong một tên. Các lựa chọn kiểu khác cũng được sao lưu tương tự theo nghiên cứu, ví dụ: sử dụng các chữ cái viết thường thấp hơn cho các tên cột để mắt người trợ giúp quét. Không có nghi ngờ có những sở thích cá nhân chủ quan trong đó quá nhưng họ được dựa trên nhiều năm kinh nghiệm trong lĩnh vực này.

Mặt khác, mọi thứ đã được cải thiện trong tài liệu SQL Server trong những năm gần đây, ví dụ: Từ khóa SQL được viết hoa, bán dấu hai chấm để phân tách các câu lệnh, v.v. Tác phẩm phiêu lưu là một cải tiến lớn trên Northwind và các quán rượu. Bây giờ tại sao tính năng kịch bản trong Management Studio lại không cho phép mã dễ dàng hơn một chút?

Các vấn đề liên quan