know this subject is a bit controversial and there are a lot of variou dịch - know this subject is a bit controversial and there are a lot of variou Việt làm thế nào để nói

know this subject is a bit controve

know this subject is a bit controversial and there are a lot of various articles/opinions floating around the internet. Unfortunatelly, most of them assume the person doesn't know what the difference between NULL and empty string is. So they tell stories about surprising results with joins/aggregates and generally do a bit more advanced SQL lessons. By doing this, they absolutely miss the whole point and are therefore useless for me. So hopefully this question and all answers will move subject a bit forward.

Let's suppose I have a table with personal information (name, birth, etc) where one of the columns is an email address with varchar type. We assume that for some reason some people might not want to provide an email address. When inserting such data (without email) into the table, there are two available choices: set cell to NULL or set it to empty string (''). Let's assume that I'm aware of all the technical implications of choosing one solution over another and I can create correct SQL queries for either scenario. The problem is even when both values differ on the technical level, they are exactly the same on logical level. After looking at NULL and '' I came to a single conclusion: I don't know email address of the guy. Also no matter how hard i tried, I was not able to sent an e-mail using either NULL or empty string, so apparently most SMTP servers out there agree with my logic. So i tend to use NULL where i don't know the value and consider empty string a bad thing.

After some intense discussions with colleagues i came with two questions:

am I right in assuming that using empty string for an unknown value is causing a database to "lie" about the facts? To be more precise: using SQL's idea of what is value and what is not, I might come to conclusion: we have e-mail address, just by finding out it is not null. But then later on, when trying to send e-mail I'll come to contradictory conclusion: no, we don't have e-mail address, that @!#$ Database must have been lying!

Is there any logical scenario in which an empty string '' could be such a good carrier of important information (besides value and no value), which would be troublesome/inefficient to store by any other way (like additional column). I've seen many posts claiming that sometimes it's good to use empty string along with real values and NULLs, but so far haven't seen a scenario that would be logical (in terms of SQL/DB design).

P.S. Some people will be tempted to answer, that it is just a matter of personal taste. I don't agree. To me it is a design decision with important consequences. So i'd like to see answers where opion about this is backed by some logical and/or technical reasons.
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
biết chủ đề này là một chút tranh cãi và có rất nhiều của nổi xung quanh internet bài viết/ý kiến khác nhau. Unfortunatelly, hầu hết trong số họ giả định người không biết những gì là sự khác biệt giữa NULL và chuỗi rỗng. Vì vậy, họ nói chuyện về các kết quả đáng ngạc nhiên với tham gia/tập hợp và nói chung làm nâng cao một chút hơn SQL bài học. Bằng cách này, họ hoàn toàn bỏ lỡ điểm toàn bộ và do đó là vô ích cho tôi. Vì vậy, Hy vọng rằ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.Hãy giả sử tôi có một bảng với thông tin cá nhân (tên, sinh, vv), nơi mà một trong những cột là một địa chỉ email với varchar loại. Chúng tôi giả định 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 đó (mà không có email) vào bảng, có hai sự lựa chọn có sẵn: đặt thành tế bào không hoặc đặt nó vào chuỗi rỗng ("). Giả sử rằng tôi là 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 truy vấn SQL đúng cho một trong hai tình huống. Vấn đề là ngay cả khi cả hai giá trị khác nhau về kỹ thuật cấp, họ là chính xác như nhau trên mức độ hợp lý. Sau khi xem xét NULL và '' tôi đến một kết luận đơn: tôi không biết địa chỉ email của người. Cũng không có vấn đề như thế nào khó khăn tôi đã cố gắng, tôi đã không thể gửi một e-mail bằng cách sử dụng hoặc NULL hoặc chuỗi rỗng, vì vậy rõ ràng hầu hết các máy chủ SMTP ra khỏi đó đồng ý với logic của tôi. Vì vậy, tôi có xu hướng sử dụng NULL nơi tôi không biết giá trị và xem xét chuỗi rỗng là một điều xấu.Sau khi một số cuộc thảo luận dữ dội với đồng nghiệp tôi đi kèm với hai câu hỏi:am tôi ngay trong giả định rằng bằng cách sử dụng chuỗi rỗng cho một giá trị không xác định gây ra một cơ sở dữ liệu "nằm" về các sự kiện? Để chính xác hơn: sử dụng SQL của ý tưởng về 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 đó về sau, khi cố gắng để gửi thư điện tử tôi sẽ đi đến kết luận mâu thuẫn: không, chúng tôi không có địa chỉ thư điện tử, mà @! #$ cơ sở dữ liệu phải có nói dối!Là có bất kỳ kịch bản hợp lý trong đó một chuỗi rỗng '' có thể là như vậy một tàu sân bay tốt thông tin quan trọng (bên cạnh giá trị và không có giá trị), mà sẽ là phiền hà/không hiệu quả để lưu trữ theo 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 sự và NULLs, nhưng cho đến nay đã không nhìn thấy một kịch bản sẽ là hợp lý (trong điều khoản của thiết kế SQL/DB).PS Một số người sẽ bị cám dỗ để trả lời, rằng nó là chỉ là một vấn đề của hương vị cá nhân. Tôi không đồng ý. 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 mà opion về việc này được ủng hộ bởi một số lý do hợp lý và/hoặc kỹ thuật.
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
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..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2025 I Love Translation. All reserved.

E-mail: