biết chủ đề này là một chút tranh cãi và có rất nhiều bài viết khác nhau / ý kiến nổi xung quanh internet. Unfortunatelly, hầu hết trong số họ cho rằng những người không biết sự khác biệt giữa NULL và chuỗi rỗng là. Vì vậy, họ kể những câu chuyện về kết quả đáng ngạc nhiên với tham gia / uẩn và thường làm bài học SQL nâng cao hơn một chút. Bằng cách này, họ hoàn toàn bỏ lỡ toàn bộ các điểm và do đó là vô ích cho tôi. Vì vậy, hy vọng câu hỏi này và tất cả các câu trả lời sẽ di chuyển chủ đề một chút về phía trước. Chúng ta hãy giả sử tôi có một bảng với thông tin cá nhân (tên, năm sinh, vv), nơi một trong các cột là một địa chỉ email với loại varchar. Chúng tôi cho rằng đối với một số lý do một số người có thể không muốn cung cấp một địa chỉ email. Khi chèn dữ liệu đó (không có email) vào bảng, có hai lựa chọn có sẵn: thiết tế bào để NULL hoặc đặt nó vào chuỗi rỗng (''). Giả sử rằng tôi nhận thức của tất cả các tác động kỹ thuật của việc lựa chọn một giải pháp khác hơn và tôi có thể tạo ra các truy vấn SQL chính xác cho bất kỳ kịch bản. Vấn đề là ngay cả khi cả hai giá trị khác nhau về trình độ kỹ thuật, họ đều giống hệt nhau về mức độ hợp lý. Sau khi xem xét NULL và '' Tôi đến một kết luận duy nhất: Tôi không biết địa chỉ email của anh chàng. Cũng không có gì khó khăn khi tôi đã cố gắng, tôi đã không thể gửi một e-mail sử dụng chuỗi hoặc NULL hoặc trống rỗng, như vậy rõ ràng hầu hết các máy chủ SMTP ra có đồng ý với logic của tôi. . Vì vậy, tôi có xu hướng sử dụng NULL nơi mà tôi không biết giá trị và xem xét chuỗi rỗng là một điều xấu Sau một số cuộc thảo luận căng thẳng với đồng nghiệp tôi đến với hai câu hỏi: tôi phải trong giả định rằng việc sử dụng chuỗi rỗng cho một giá trị không rõ là gây ra một cơ sở dữ liệu để "nói dối" về các sự kiện? Để được chính xác hơn: sử dụng ý tưởng SQL của những gì là giá trị và những gì không, tôi có thể đi đến kết luận: chúng tôi có địa chỉ e-mail, chỉ bằng cách tìm ra nó không phải là null. Nhưng sau đó, khi cố gắng để gửi e-mail, tôi sẽ đi đến kết luận mâu thuẫn:! Không có, chúng tôi không có địa chỉ e-mail, mà @ # $ cơ sở dữ liệu phải được nằm Có kịch bản hợp lý, trong đó một chuỗi rỗng '' có thể được như một tàu sân bay tốt các thông tin quan trọng (bên cạnh giá trị và không có giá trị), đó sẽ là phiền hà / không hiệu quả để lưu trữ bằng bất kỳ cách nào khác (như cột bổ sung). Tôi đã nhìn thấy nhiều bài viết tuyên bố rằng đôi khi nó là tốt để sử dụng chuỗi rỗng cùng với giá trị thực và giá trị NULL, nhưng cho đến nay chưa thấy một kịch bản đó sẽ là hợp lý (về SQL / DB thiết kế). PS Một số người sẽ bị cám dỗ để trả lời, rằng nó chỉ là một vấn đề sở thích cá nhân. Tôi không đồng ý. Đối với tôi đó là một quyết định thiết kế với những hậu quả quan trọng. Vì vậy, tôi muốn xem câu trả lời nơi opion về điều này được hỗ trợ bởi một số lý do hợp lý và / hoặc kỹ thuật.
đang được dịch, vui lòng đợi..
