Tôi thấy không có vấn đề gì với việc lưu trữ mã zip dưới dạng số ngay cả khi bạn không muốn thực hiện các phép toán trên đó.
Trong kho dữ liệu công ty của chúng tôi, chúng tôi là người nhận dữ liệu từ nhiều hệ thống cũ. Kết quả là, chúng ta thấy rất nhiều dữ liệu rác đang được sử dụng.
Đưa trường hợp của chúng tôi vào nơi chúng tôi có số nhận dạng địa lý là giá trị "số" có 4 chữ số không được điền đầy đủ. Trường này thường được sử dụng để nối các bảng với nhau.
Tôi sẽ thực hiện một trong hai cách tiếp cận: 1) khai báo cột là trường char có chiều dài 4 và thêm CONSTRAINT LIKE '[09] [09] [09] [09]' 2) xác định độ dài số 4 và nếu người dùng muốn, hãy định dạng giá trị WHEN DISPLAYING.
Phương pháp tiếp cận số 1 giúp bạn giải quyết nhiều rắc rối khi định dạng liên tục, nhưng nếu bạn thường lọc và thậm chí lập chỉ mục/tham gia vào cột, tôi sẽ xem xét rằng chúng tôi đã tắt tùy chọn # 2 .
Lý do thứ ba là kinh nghiệm của tôi là mọi người chỉ đơn giản là lười biếng khi nói đến việc thêm ràng buộc vào cơ sở dữ liệu hoặc họ không biết gì. Tôi nghĩ rằng nó là lười biếng hơn, cá nhân. Tôi thấy các ràng buộc tồn tại chủ yếu được áp dụng như các chỉnh sửa trong ứng dụng mà ban đầu thu thập dữ liệu và những sửa đổi đó không được áp dụng thống nhất.
Kết quả là kho dữ liệu của chúng tôi kết thúc nhận tất cả các loại biến thể, bao gồm cả việc không điền trước bằng số không hoặc biện minh cho giá trị.
Khi bạn xác định thứ gì đó là INTEGER, bạn sẽ tự động nhận được bộ nhớ hiệu quả hơn, đặc biệt. khi lập chỉ mục trên cột và chỉnh sửa mọi người hiểu và có nhiều khả năng được áp dụng nhất quán trên các hệ thống cũ bởi các nhà thiết kế cơ sở dữ liệu có khả năng khác nhau.
Tôi không có vấn đề gì với tùy chọn # 1, ngoại trừ việc sử dụng trường trong chỉ mục và mối quan tâm của tôi về cách tiếp cận khi bạn chấp nhận trường là số apha, mọi người có xu hướng ném thêm rác vào đó.
Lấy ví dụ, số nhận dạng nhân viên Peoplesoft của chúng tôi. Ai đó đã quyết định thêm dấu "X" trước một nhân viên có 6 chữ số không được điền vào để chỉ định rằng nhân viên là một nhà thầu. Điều này vi phạm một thực hành cá nhân của tôi không kết hợp các mẩu thông tin riêng biệt vào một lĩnh vực duy nhất. Điều này gây ra tất cả các loại vấn đề mâu thuẫn trên các hệ thống khác nhau. Nếu trường này là một số, không ai có thể cố gắng làm điều đó.
Nhận xét?
Và có. Tôi đã dành nhiều thời gian định dạng các liên kết hơn là viết câu hỏi thực tế –