2012-03-29 8 views
5

Rõ ràng là bạn có thể sử dụng các ký tự số trong các tên bảng SQL và sử dụng chúng miễn là chúng không ở đầu. (Có một cuộc thảo luận ở đây về một trong những tác dụng phụ: SQLite issue with Table Names using numbers?) Cơ sở dữ liệu tôi đang nhắm mục tiêu là Oracle 10g/11g.Ý tưởng tốt hay xấu để bao gồm các số trong tên bảng SQL?

Tôi đang thiết kế cơ sở dữ liệu báo cáo, nơi đặt tên một số thực thể rõ ràng được thực hiện tốt nhất bằng cách mô tả báo cáo, được đặt tên theo số ('phần 45', '102S', '401'). Đó chỉ là ngôn ngữ của miền kinh doanh: các báo cáo này không thường được gọi bằng bất kỳ tên nào khác. Các thực thể tôi đang lập mô hình thực sự được đặt tên tốt nhất theo cách này.

Câu hỏi của tôi là: Tôi có gặp khó khăn về bảo trì hoặc lập trình nếu tôi đặt các số vào tên bảng không? Tôi luôn lo lắng về phần mềm phụ trợ xung quanh cơ sở dữ liệu: các trình điều khiển, mã ETL có thể không phát huy hiệu quả với một tên không thuần túy-vani. Nhưng có một lợi ích thực sự trong sự hiểu biết trong lĩnh vực kinh doanh này, vì vậy tôi chỉ đang được squeamish?

Câu hỏi của tôi đặt đơn giản là: có trường hợp 'gotchas' hoặc góc nào loại trừ tên bảng như PART_45_AUDIT không?

+2

Không có gì tôi có thể nghĩ đến. –

+0

Trong khi không thường xuyên gặp phải, số giúp với cơ sở dữ liệu lớn trong một số cách. Không có nhiều người "dám" để sử dụng chúng. – NoChance

Trả lời

7

Nếu PART_45_AUDIT thực sự là mô tả rõ ràng nhất về thực thể bạn đang lập mô hình (điều này rất hiếm), không nên có bất kỳ dấu hiệu nào để có số ở giữa tên. Đặt các số ở phía trước tên sẽ là một câu chuyện khác vì nó sẽ yêu cầu sử dụng số nhận dạng được trích dẫn kép và có rất nhiều công cụ không hỗ trợ đầy đủ số nhận dạng được trích dẫn kép. Thêm vào đó, tất nhiên, khá khó chịu khi phải gõ hai dấu ngoặc kép mỗi khi bạn tham khảo bảng.

CREATE TABLE "102S" (
    col1 number 
); 

SELECT * 
    FROM "102S" 
+0

Cảm ơn. Yup, PART_45_AUDIT khiến tôi không thoải mái như một cái tên nhưng tôi không thể tự mình ghi đè lên tiếng lóng của công ty. Bất cứ lúc nào tôi cố gắng để thay thế một tên chung chung hơn nó gây nhầm lẫn. – deepgeek