2014-09-05 15 views
5

Tôi đã tạo một bảng FTS3 SQLite cho một ứng dụng Android có nhiều cột. Bảng được điền bởi các yếu tố đầu vào của người dùng. Tuy nhiên không phải tất cả các cột trong bảng phải có giá trị. Ví dụ: Có một cột có tên là PLURAL. Người dùng gửi một từ là một động từ (không phải là danh từ) và vì vậy cột PLURAL không được có giá trị.Android SQLite fts3: Tôi nên chèn gì: giá trị null HOẶC chuỗi rỗng?

Tôi nên nhập gì vào cột PLURAL, giá trị NULL hoặc chuỗi trống ""?

Ngoại trừ logic ảnh hưởng đến câu trả lời, có sự khác biệt đáng kể nào trong hiệu suất Cơ sở dữ liệu nếu tôi sử dụng NULL trên giá trị chuỗi rỗng không? Có bất kỳ vấn đề đã biết nào (ví dụ: ném ngoại lệ) nếu tôi sử dụng giá trị NULL không?

Tôi đã tìm kiếm trên web và tôi đã tìm thấy một số ý kiến ​​về DB khác nhưng không tìm thấy trên SQLite fts3.

Cảm ơn bạn!

Trả lời

5

Dựa trên logic: bạn không nên chèn chuỗi rỗng nhưng NULL, vì trong SQL từ NULL được coi là NO VALUE

Không có vấn đề liên quan đến preformance emptyness hoặc nulliness của chuỗi. Việc xem xét duy nhất có thể xuất hiện trong trường hợp câu lệnh SQL inner join. INNER JOIN chỉ tham gia các trường không NULL phù hợp với điều kiện tham gia. Có các câu lệnh LEFT/RIGHT JOIN đặc biệt cho phép sử dụng các trường NULL tham gia.

1

những gì tôi hiểu sau khi trải qua nhiều bài đăng là nó xử lý null dưới dạng kết hợp hành vi từ các công cụ cơ sở dữ liệu khác nhau.

Mục đích là làm cho SQLite xử lý NULL theo cách tuân thủ tiêu chuẩn. Nhưng các mô tả trong các tiêu chuẩn SQL về cách xử lý NULL dường như không rõ ràng. Nó không phải là rõ ràng từ các tài liệu tiêu chuẩn chính xác như thế nào NULLs nên được xử lý trong mọi trường hợp.

tham khảo này để biết thông tin chi tiết http://www.sqlite.org/nulls.html

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