Tôi có thể tìm hướng dẫn chi tiết về các quy ước đặt tên PostgreSQL ở đâu? (tên bảng so với trường hợp lạc đà, trình tự, khóa chính, ràng buộc, chỉ mục, v.v ...)
Tôi có thể tìm hướng dẫn chi tiết về các quy ước đặt tên PostgreSQL ở đâu? (tên bảng so với trường hợp lạc đà, trình tự, khóa chính, ràng buộc, chỉ mục, v.v ...)
Câu trả lời:
Về tên bảng, trường hợp, vv, quy ước phổ biến là:
UPPER CASE
lower_case_with_underscores
Ví dụ :
UPDATE my_table SET name = 5;
Điều này không được viết bằng đá, nhưng bit về định danh trong chữ thường rất được khuyến khích, IMO. Postgresql xử lý trường hợp định danh không nhạy cảm khi không được trích dẫn (nó thực sự gấp chúng thành chữ thường trong nội bộ) và trường hợp nhạy cảm khi được trích dẫn; nhiều người không nhận thức được sự bình dị này. Sử dụng luôn chữ thường bạn an toàn. Dù sao, bạn có thể chấp nhận sử dụng camelCase
hoặc PascalCase
(hoặc UPPER_CASE
), miễn là bạn nhất quán: luôn luôn là định danh trích dẫn hoặc không bao giờ (và điều này bao gồm cả việc tạo lược đồ!).
Tôi không nhận thức được nhiều quy ước hoặc hướng dẫn phong cách. Các khóa thay thế thường được tạo từ một chuỗi (thường là với serial
macro), sẽ thuận tiện khi gắn vào cách đặt tên đó cho các chuỗi đó nếu bạn tạo chúng bằng tay ( tablename_colname_seq
).
Xem thêm một số thảo luận ở đây , ở đây và (cho SQL nói chung) ở đây , tất cả với một số liên kết liên quan.
Lưu ý: Postgresql 10 giới thiệu identity
các cột dưới dạng thay thế tuân thủ SQL cho nối tiếp .
Thực sự không có một hướng dẫn chính thức, bởi vì không có phong cách hay tiêu chuẩn duy nhất.
Miễn là bạn hiểu các quy tắc đặt tên định danh, bạn có thể sử dụng bất cứ thứ gì bạn thích.
Trong thực tế, tôi thấy nó dễ sử dụng hơn lower_case_underscore_separated_identifiers
vì chúng không cần thiết "Double Quote"
ở mọi nơi để bảo quản vỏ, không gian, v.v.
Nếu bạn muốn đặt tên cho các bảng và chức năng của "@MyAṕṕ! ""betty"" Shard$42"
mình, bạn có thể tự do làm điều đó, mặc dù việc gõ ở mọi nơi sẽ rất khó khăn.
Những điều chính cần hiểu là:
Trừ dụng dấu ngoặc kép, định danh là trường hợp gấp để giảm hợp cụ thể, vì vậy MyTable
, MYTABLE
và mytable
là tất cả những điều tương tự, nhưng "MYTABLE"
và "MyTable"
là khác nhau;
Trừ khi trích dẫn kép:
Các định danh SQL và các từ khóa phải bắt đầu bằng một chữ cái (az, nhưng cũng là các chữ cái có dấu phụ và các chữ cái không phải là chữ Latinh) hoặc dấu gạch dưới (_). Các ký tự tiếp theo trong một mã định danh hoặc từ khóa có thể là chữ cái, dấu gạch dưới, chữ số (0-9) hoặc ký hiệu đô la ($).
Bạn phải trích dẫn hai từ khóa nếu bạn muốn sử dụng chúng làm định danh.
Trong thực tế, tôi thực sự khuyên bạn không nên sử dụng từ khóa làm định danh. Ít nhất là tránh những từ dành riêng. Chỉ vì bạn có thể đặt tên cho một bảng "with"
không có nghĩa là bạn nên.
lower_case_underscore_separated_identifiers
" ... gần đây, tôi nghe thấy điều này được mô tả là "trường hợp rắn"