2009-06-19 39 views
8

Tôi đang thiết kế một cơ sở dữ liệu và gần đây đã đặt tên một cột trong bảng DayOfWeek, hoàn toàn quên rằng DayOfWeek là một hàm dựng sẵn trong SQL Server. Bây giờ tôi quyết định nếu tôi chỉ nên để nó như là và tham khảo cột với dấu ngoặc vuông [DayOfWeek] hoặc thay đổi tên cột để tránh bất kỳ xung đột nào trong tương lai. Tôi không quá xa vào dự án nên việc thay đổi nó không quá khó. Cuộc tranh luận trong đầu của tôi là tên cột của DayOfWeek chỉ có ý nghĩa rất nhiều vì mục đích của nó, vì vậy tôi thực sự muốn sử dụng nó ... nhưng nó là một từ dành riêng ... và có thể gây đau trong tương lai (đặc biệt nếu Tôi luôn phải đặt các dấu ngoặc vuông xung quanh nó khi tham chiếu cột).Tôi có nên sử dụng từ khóa SQL Server làm tên cột không?

Mọi người nghĩ gì?

Trả lời

12

Tôi sẽ thay đổi nó - tôi đã có một bảng kế thừa được gọi là người dùng - đó là một nỗi đau với các dấu ngoặc vuông mọi lúc. có thể gọi nó là DayOfWeekName hoặc DayOFWeekId

Josh

+1

Tôi đang đổi thành DayOfWeekId. Điều đó thực sự hoạt động tốt hơn vì tôi đang lưu trữ một int trong cột để đại diện cho ngày trong tuần. Tôi cũng có một bảng có tên là Người dùng trong cơ sở dữ liệu một lần và tôi sẽ KHÔNG BAO GIỜ làm điều đó một lần nữa. Các bảng có tên là các từ dành riêng chắc chắn là thứ xấu. Cuộc tranh luận trong đầu của tôi là nếu một tên cột như một từ dành riêng là ok ... nhưng như mọi người cho rằng nó chỉ là không có giá trị nó (và bạn chỉ ra một tên tốt hơn anyway). Cảm ơn! –

0

thay đổi nếu dễ dàng. Nhưng như một thực tế tốt, tôi sẽ sử dụng dấu ngoặc vuông ở khắp mọi nơi. Một khi bạn quen, không còn đau đớn hơn là đặt khoảng cách giữa các từ.

0

Chúng tôi có một bảng ở đây được gọi là Người dùng. Nếu có thể, tôi sẽ thay đổi nó. Mặc dù Josh là chính xác, bạn có thể đặt dấu ngoặc vuông để biểu thị nó là một bảng, nhiệm vụ đó được cũ rất nhanh chóng. Sử dụng các từ dành riêng làm bảng cũng gây khó khăn cho các nhà phát triển khác. Nếu ai đó không biết đó là một từ dành riêng, có thể khó xác định tại sao truy vấn không hoạt động.

0

Nếu bạn sử dụng bất kỳ bộ chuyển đổi/thư viện trừu tượng DB nào để lấy dữ liệu từ cơ sở dữ liệu, thì đừng lo lắng. Lớp học sẽ thoát khỏi các tên cột cho bạn. Nếu bạn tự viết các truy vấn SQL, thì nó có thể gây ra một số rắc rối. Bạn cần phải thoát khỏi các tên cột trong các truy vấn của bạn.

P.S. Tôi nhớ lại, vài lần tôi đã ở trong tình huống như bạn. Nhưng tôi đã được đặt tên cột là "trật tự" :-)

0

Tôi cũng sẽ tránh sử dụng các từ dành riêng, bạn có thể gặp khó khăn khi gặp khó khăn nếu bạn không chú ý.

4

Jeff,

Nếu bạn không quá xa theo dõi để đổi tên cột (tương đối) một cách dễ dàng thì tôi khuyên bạn nên thay đổi nó. Bạn đã xác định được một cơn đau đầu có thể xảy ra trong tương lai cho đội bảo trì, và tôi đoán nó sẽ thực sự ít tốn kém hơn (theo thời gian) để làm sạch nó ngay bây giờ, đặc biệt là xem xét việc đổi tên thứ gì đó không phải là địa ngục vì sự ra đời của chức năng tìm kiếm và thay thế thực sự hiệu quả trong các trình soạn thảo văn bản và IDE.

Phần thực sự khó khăn khi đổi tên nó là đạt được sự hiểu biết cần thiết để thực hiện công việc một cách an toàn. Bạn là duy nhất (là tác giả) trong việc hiểu biết đó. Nếu bạn hỏi tôi (ví dụ như) để thực hiện công việc, thì có lẽ nó sẽ không phải là một đề xuất kinh doanh hiệu quả về chi phí.

... Vì vậy, 1 để sửa chữa sucker chính mình ... và 2 cho không làm việc đó một lần nữa ;-)

Cheers. Keith.

+0

Đó là một điểm tuyệt vời ... nó là tương đối dễ dàng cho tôi để đổi tên nó ngay bây giờ, và sẽ chỉ khó khăn hơn trong tương lai. Thêm mỗi lần ai đó cần nhập hai dấu ngoặc vuông (hoặc nhớ rằng họ phải nhập chúng) và nó nhanh chóng biến thành rất nhiều thời gian (và tiền). Tôi đã đi với DayOfWeekId như Josh đề nghị. –

1

Tôi luôn đảm bảo rằng tôi không bao giờ sử dụng từ khóa làm khởi đầu của bất kỳ biến/đối tượng/hàm nào đơn giản chỉ vì bạn không bao giờ chắc chắn nếu ngôn ngữ đích của bạn sẽ thích nó. Nó thường có thể tạo ra các lỗi lập dị mất một thời gian để theo dõi. Ngay cả khi cú pháp kiểm tra không nhặt nó lên, nó có nghĩa là bạn đã lãng phí nhiều thời gian hơn nếu nó đã được một tên khác nhau như FurryKitten.

Tôi sẽ tránh DayOfWeek và chọn một thứ hoàn toàn khác, có thể là Weekday hoặc DayName. Nó chỉ tiết kiệm rắc rối.

Plus - dấu ngoặc vuông chỉ tạo ra nhức đầu và có rất nhiều nhà phát triển SQL không sử dụng dấu ngoặc vuông - nhà phát triển mới sẽ kết thúc việc tạo mã "không có dấu ngoặc" trong thói quen sau một thời gian tham gia nhóm. Các quy ước không phổ biến nên tránh nếu có thể.

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