2009-06-04 76 views
14

thể trùng lặp:
Database, Table and Column Naming Conventions?ước đặt tên cho các bảng và cột trong cơ sở dữ liệu

Mỗi lần khi dự án mới bắt đầu, tôi đang suy nghĩ về quy ước đặt tên của bảng và cột trong cơ sở dữ liệu. Trường hợp nào là đề xuất của bạn và tại sao?

Trường hợp 1. column_name
Trường hợp 2. ColumnName
Trường hợp 3. column_name
Trường hợp 4. ColumnName

+1

@TheTXI - câu hỏi đó là về tiền tố bảng chứ không phải về kiểu đặt tên – sasa

+0

+1 để chỉnh sửa lại câu hỏi của riêng bạn ! –

Trả lời

18

Bạn nên sử dụng trường hợp số 1 vì nó không có vấn đề về độ nhạy. Ngoài ra, trường hợp lạc đà hút với từ viết tắt.

columnID 
columnId 
columnIDAlternative 
columnIdAlternative 
RASCScore 
RascScore 

column_id 
column_id_alternative 
rasc_score 

Ngoài ra, khoảng trắng giữa các từ trông dễ chịu hơn là ghép tất cả mọi thứ lại với nhau. Hoàn toàn có giá trị bất cứ điều gì cảm nhận được nỗi đau của việc gõ một gạch dưới có. Dấu gạch dưới mô phỏng không gian và danh từ ghép và cụm từ có khoảng trống trong ngôn ngữ viết bình thường. TheOnlyPeopleToTypeLikeThisMayHaveBeenTheRomans.

+3

Tôi chưa bao giờ thích CamelCase và bạn chỉ giải thích lý do tại sao. – Xeoncross

+1

Khi bạn bắt đầu sử dụng Underscore ban đầu nó có vẻ tốt, sau một năm hoặc lâu hơn, bạn sẽ cảm thấy khó chịu. Đặc biệt là khi bạn có khung công tác ORM được sử dụng trong .Net – Ravia

+0

Bạn có thể giải thích chi tiết về liên kết giữa các tên bảng và khung ORM trong .NET không? –

2

I Like trường hợp 2, giá trị dường như nổi bật đối với tôi tốt hơn theo cách đó. Dù bạn chọn gì, hãy giữ cho nó phù hợp!

2

Tôi sử dụng trường hợp 2 (Tên cột) - vì dấu gạch dưới là một loại khó khăn để nhập.

Dấu gạch dưới là OK trong tên chỉ mục, trình kích hoạt hoặc các đối tượng khác không được nhập thường xuyên. Tôi để chúng ra khỏi bảng, cột, khung nhìn, tên proc được lưu trữ vì đó là những tên thường xuyên được sử dụng và tiếp cận với dấu gạch dưới đó có thể làm chậm bạn xuống nếu bạn sử dụng nó thường xuyên.

0

Tôi chỉ yêu camelCasing (4) khả năng đọc tuyệt vời, không gạch

5

Tôi đồng ý với # 2 vì hai lý do:

  1. dấu gạch chân là một nỗi đau để gõ.
  2. Trong thuộc tính .Net thường được đặt theo cách này. Điều này làm cho tất cả các trận đấu của bạn đặt tên lên - đó là tiện dụng và giúp đỡ trong các tình huống mà bạn đang sử dụng một ORM.

Thật trùng hợp, tôi tin rằng các nhà phát triển Java có xu hướng sử dụng # 4 trong lớp học của họ. Tôi sẽ thay đổi câu trả lời của mình thành # 4 nếu phần mềm máy khách nằm trong Java.

+1

... và trường hợp # 1 nếu phần mềm được viết bằng PHP? :) – sasa

7

Bất cứ điều gì bạn quyết định chọn, gắn bó với nhau là quan trọng nhất, đó là nhất quán.

Tôi thích số 2 vì đây là imo dễ đọc nhất và được đề cập trước khi gạch dưới là xấu và gây phiền toái khi gõ. # 4 là thứ hai tốt nhất. # 3 tôi thích ít nhất, cả chữ hoa và gạch dưới là quá mức cần thiết.

3

Tôi bỏ phiếu cho "Cho dù bạn đã sử dụng trong các dự án trước đó" Tính nhất quán trong trường hợp này có lẽ là quan trọng hơn bất cứ ý thức hệ đặc biệt ...

1

Tôi tên bảng của tôi giống hệt như tôi đặt tên cho các đối tượng mà tôi sẽ tạo ra để bọc chúng lại. Điều này làm việc tốt với các ORM hiện đại (các trình ánh xạ quan hệ đối tượng) vì chúng thường có thể tạo ra một mô hình đối tượng cho bạn dựa trên cấu trúc cơ sở dữ liệu của bạn (hoặc cách khác xung quanh).Câu trả lời được chấp nhận dường như làm giảm bớt "nỗi đau của việc đánh dấu gạch dưới", nhưng tôi coi trọng nó. Đau khổ từ RSI, đặc biệt là trong pinkys của tôi, mà tôi sử dụng để giữ phím Shift và Ctrl, tôi hoàn toàn làm mọi thứ có thể để tránh những dấu gạch dưới không cần thiết. Tất nhiên, một câu trả lời hay cho vấn đề này là để remap phím CapsLock của bạn hoặc phím Shift hoặc phím Underscore. Nhưng trong mọi trường hợp, tôi thêm câu trả lời này cho một câu hỏi cũ vì không ai đề cập đến làm việc với ORM của bạn. Kể từ khi tôi làm hầu hết các chương trình trong .NET hầu hết các thuộc tính của tôi là lạc đà cased và vì vậy tôi tên cột db của tôi trong trường hợp lạc đà là tốt. Tôi hoàn toàn không có vấn đề gì khi viết tắt. Vì vậy, tôi làm những việc như:

PersonDao.GetIdByName ("Hello world").

Vỏ bọc lạc đà chắc chắn gây phiền toái cho các tên dài ... nhưng sau đó, tôi tránh các tên dài. Thông thường nó có nghĩa là tôi đã tổ chức mọi thứ không chính xác. Và nếu tôi xác định rằng tôi đã không, tốt ... trong những trường hợp đó, tên dài rất hiếm trong mã của tôi và tình huống rất độc đáo, dù sao nó cũng không làm chậm tôi.

Tôi nghĩ rằng việc đặt tên hoàn toàn có tầm quan trọng tối thượng. Và cũng giống như một số người có một fetish XML, những người khác có fetishes cơ sở dữ liệu. Cá nhân, tôi thích sử dụng ORM của tôi để bỏ qua cơ sở dữ liệu của tôi hoàn toàn (hoặc càng nhiều càng tốt). Để tạo điều kiện này, tôi đặt tên cho các cột của mình giống như tôi đặt tên các thuộc tính trong mã. Vì vậy, cuối cùng, dấu gạch dưới ghét sang một bên, tôi sử dụng mọi quy ước tồn tại cho ngôn ngữ mà mã của tôi tồn tại.

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