it-swarm-vi.tech

Giao diện trực quan để soạn Boolean Logic?

Tôi muốn biết làm thế nào mọi người có, hoặc sẽ xây dựng một giao diện đơn giản hóa việc xây dựng các điều kiện boolean hợp lý? (Có, đó là trình tạo truy vấn cơ sở dữ liệu) Trong suy nghĩ của tôi, một giao diện xấu có họ gõ rất nhiều AND, KHÔNG IN, OR từ khóa, v.v. Hoặc người khác có một triệu hộp tổ hợp.

Tôi tự hỏi nếu có ai có một ví dụ tốt tôi có thể lượm lặt ý tưởng từ đâu? Hoặc một số gợi ý?

Hiện tại tôi đang xem xét một màn hình chia nhỏ với lưới để soạn truy vấn và khung vẽ để hiển thị một biểu thị trực quan của các điều kiện và cách chúng trùng nhau, v.v. Giống như Biểu đồ Venn. Điều này vẫn cho tôi một vấn đề với khả năng sử dụng/trực giác của các điều khiển trên lưới.

EDIT: Tôi rất quan tâm đến những ý tưởng đơn giản hóa nó cho những người dùng ít kỹ thuật hơn. Tuy nhiên, ý tưởng về một phiên bản UI cho người dùng nâng cao cũng rất hữu ích.

134
Edward Williams

Xem thêm iTunes 9 trở lên. Nó thêm khả năng thực hiện các biểu thức "lồng nhau" AND/OR, giống như cách lập trình viên sẽ làm điều đó với dấu ngoặc đơn:

alt text

59
Hisham

Vấn đề chính mà người dùng phi kỹ thuật gặp phải với logic Boolean là hiểu được sự khác biệt giữa AND và OR vì nó không luôn tương ứng với ngôn ngữ tự nhiên (ví dụ, cho tôi thấy các đơn đặt hàng từ New York và New Jersey hầu như chắc chắn có nghĩa là Location = NY OR Location = NJ). Thông thường người dùng có xu hướng diễn giải "hoặc" là một OR độc quyền. Sau đó, có vấn đề mất dấu ngoặc đơn lồng nhau.

Một giải pháp tránh được cả hai vấn đề này là thể hiện logic bằng đồ họa bằng một phép ẩn dụ hệ thống ống nước hoặc điện. Đã có một vài dòng công việc thực hiện phương pháp này:

Shneerman, B (1991). Giao diện người dùng trực quan để khám phá thông tin. Kỷ yếu của Hội nghị thường niên lần thứ 54 của Hiệp hội Khoa học Thông tin Hoa Kỳ, 28, 379-384.

Murray NS, Paton NW, Goble CA, Bryce J (2000) Kaleidoquery Một ngôn ngữ hình ảnh dựa trên dòng chảy và đánh giá của nó. Tạp chí Ngôn ngữ & Máy tính Trực quan, 11 (2), 151-189.

Các trình xây dựng truy vấn là một trong số ít nơi có các chế độ Cơ bản và Nâng cao riêng biệt. Có lẽ bạn sẽ thấy rằng 90% truy vấn của người dùng của bạn chỉ phù hợp với một vài mẫu (ví dụ: Khách hàng có tên bắt đầu bằng Xxxx, Tài khoản điện tử Tôi chịu trách nhiệm với các hóa đơn chưa thanh toán, Đơn đặt hàng tối qua được thực hiện giữa ngày a và b NÓI). Thật hợp lý khi có những truy vấn đóng hộp hoặc bán đóng hộp có thể được lựa chọn và chỉ định dễ dàng trong khi đặt một cái gì đó như Kaleidoquery dưới Advanced cho truy vấn ad hoc hiếm hơn.

45
Michael Zuschlag

Cái này đã thử nghiệm tốt với cả người dùng kỹ thuật và phi kỹ thuật và có thể tạo ra khá nhiều truy vấn cơ sở dữ liệu có thể ...

db query builder

Lợi ích là rất rõ ràng và người dùng có thể kéo và thả ( hoặc xóa ) bất kỳ biểu thức hoặc nhóm biểu thức trong cây.

Mặt trái là nó tiêu thụ bao nhiêu không gian.

43
DaveAlger

Có một plugin jquery để làm điều này, được gọi là QueryBuilder, thực hiện việc này theo một cách thú vị: http://mistic100.github.io/jQuery-QueryBuilder/

Jquery QueryBuilder Screenshot

14
dryobs

Tôi thích cách Apple Quy tắc của Mail hoạt động:

screenshot

10
LennyUserExperience

Có khá nhiều ý tưởng/tài liệu tham khảo tốt ở đây, đặc biệt là một số phương pháp tiếp cận hiện có. Thông thường, mặc dù không phải lúc nào cũng vậy, cách tiếp cận của Apple là một nơi tốt để bắt đầu - nhưng có lẽ trong trường hợp của bạn thì có thể không phải vậy. Tôi có ấn tượng (mặc dù bạn chưa thực sự nói điều đó) rằng bạn đang làm việc với rất nhiều dữ liệu bao gồm nhiều trường/biến.

Tôi đồng ý rằng cố gắng tìm cách đơn giản hóa nó cho người dùng ít kỹ thuật là một ý tưởng tốt, miễn là bạn mong muốn có ít người dùng kỹ thuật sử dụng hệ thống. Nếu không, phát triển một giao diện ít phức tạp hơn có thể là rất nhiều công việc cho lợi ích ít. Tôi cũng thích ý tưởng về sơ đồ Venn - sẽ rất thú vị khi xem cách thức đó.

Tuy nhiên, về các đề xuất thực tế về cách đơn giản hóa điều này, một cách tiếp cận khác là chỉ tạo một quy trình "Thuật sĩ" nào đó giúp người dùng vượt qua quá trình với sự kết hợp giữa ngôn ngữ tự nhiên và giao diện 'web' quen thuộc. Dưới đây là một bản mô tả về cách thức này có thể hoạt động, sử dụng một ví dụ về cơ sở dữ liệu xe cơ giới:

enter image description here

Phần trên cho thấy cách Bước 1 có thể hoạt động, cung cấp cho người dùng một số tùy chọn họ có thể chọn bằng cách đánh dấu vào hộp kiểm có liên quan. Họ có thể chọn một hoặc nhiều hộp kiểm khi cần thiết (hoặc có thể không phải bất kỳ hộp nào?!). Nếu họ chọn một hộp kiểm cho một tùy chọn yêu cầu thêm thông tin thì các từ liên quan sẽ được liên kết. Nhấp vào các từ siêu liên kết sẽ hiển thị cho người dùng một cái gì đó giống như ví dụ dưới đây:

enter image description here

Vì vậy, ví dụ trên cho thấy những gì người dùng có thể thấy nếu họ đã chọn hộp kiểm "Xe được sản xuất bởi các nhà sản xuất cụ thể" và sau đó nhấp vào văn bản siêu liên kết để chọn (các) nhà sản xuất họ muốn đưa vào kết quả tìm kiếm. Tất nhiên cách tiếp cận của bạn có thể khác nhau tùy thuộc vào việc họ có nên xem trường văn bản miễn phí, danh sách tùy chọn thả xuống, v.v.

Bây giờ, để đối phó với bất kỳ "ngoại lệ" nào đối với tiêu chí tìm kiếm, về cơ bản bạn sẽ tạo lại cửa sổ đầu tiên một lần nữa, nhưng với cách diễn đạt khác nhau, như:

enter image description here

Vì vậy, sau khi chọn ngoại lệ nhiên liệu ở trên, người dùng nhấp vào các từ siêu liên kết "nhiên liệu cụ thể" để chọn ngoại lệ như dưới đây:

enter image description here

Một lần nữa, đây có thể là danh sách thả xuống, nút radio, vv tùy thuộc vào điều gì phù hợp nhất với điều kiện. Họ cũng sẽ trải qua quá trình tương tự để chọn quốc gia mà họ không muốn chiếc xe được sản xuất.

Tất nhiên, tôi thấy cách tiếp cận "Wizard" này là dành cho người dùng ít kỹ thuật hơn. Bạn cũng sẽ cung cấp tùy chọn "Nâng cao" để người dùng thoải mái với cách tiếp cận phức tạp hơn có thể được sắp xếp hợp lý so với phương pháp Wizard.

[~ # ~] phụ lục [~ # ~]

Được rồi, điều này giữ tôi đêm qua. Tôi thực sự thấy điều này Wizard cách tiếp cận khá tốt, vì vậy tôi nghĩ rằng đáng để quay lại để cải thiện câu trả lời của tôi vì nó có thể giúp đỡ người khác nếu không phải là bạn.

Tôi đã cập nhật các hình ảnh mô phỏng ở trên và muốn mở rộng ý tưởng của bạn về việc sử dụng màn hình chia nhỏ.

Ban đầu tôi nghĩ rằng sau khi bước cuối cùng hoàn thành, thì một cái gì đó giống như ý tưởng sơ đồ Venn của bạn có thể được sử dụng để chỉ ra trực quan những gì người dùng đã chọn. Nhưng sau đó tôi nghĩ về khẳng định ban đầu của mình rằng cũng nên có một cách để người dùng quay lại và sửa đổi các tiêu chí của họ. Vì vậy, bây giờ tôi nghĩ rằng sử dụng màn hình chia nhỏ của bạn, bạn có thể đạt được cả hai. Dưới đây là một hình ảnh mới để minh họa những gì tôi đang nghĩ:

Split screen view

Vì vậy, ở trên là một ví dụ về những gì có thể xuất hiện trong phần thứ hai của màn hình chia nhỏ của bạn. Khi người dùng chọn tiêu chí của họ, bản cập nhật này sẽ cho biết lựa chọn của họ là gì. Cách tiếp cận này cũng sử dụng giao diện web quen thuộc và làm nổi bật các lựa chọn của họ bằng các siêu liên kết và, nếu họ muốn, họ có thể thay đổi tiêu chí của mình bằng cách nhấp vào các siêu liên kết trong màn hình này, thay vì phải quay lại giữa các màn hình để làm lại các bước. Tất nhiên, nếu họ muốn chọn một điều kiện mới , có lẽ họ cần quay lại bước liên quan. Nhưng bạn hiểu ý rồi đấy.

Điều khác duy nhất tôi muốn đề cập là không cần biết sự phức tạp của dữ liệu của bạn, bạn có thể cần phải tinh chỉnh phương pháp này Wizard. Cơ sở dữ liệu phương tiện đơn giản của tôi chỉ cần hai bước, nhưng phức tạp người ta có thể cần nhiều bước hơn. Tuy nhiên, điểm của cách tiếp cận này không phải là quá nhiều về số lượng bước, nhưng thực tế là Wizard 'nói' mọi người thông qua các bước sử dụng ngôn ngữ tự nhiên như nhiều nhất có thể.

Dù sao, tôi hy vọng điều này, cùng với các câu trả lời khác được cung cấp, cung cấp cho bạn một số thực phẩm để suy nghĩ. Và có lẽ một số người khác. Đây là một chủ đề hay và một chủ đề mà tôi nghĩ sẽ phù hợp với nhiều người dùng.

Chúc may mắn!

10
Monomeeth

Nó phụ thuộc vào mức độ tinh vi của người dùng của bạn. Chúng tôi có một cái gì đó tương tự trong phiên bản hiện tại của giao diện đã bỏ nhóm và sửa lỗi kết hợp giữa các điều khoản với OR. Mỗi thuật ngữ có thể được phủ định. Hầu hết người dùng đều ổn với loại truy vấn đó và hầu hết trong số họ sẽ không thể tạo ra các truy vấn nâng cao hơn một cách chính xác. Chúng tôi hiện đang thực hiện quy trình hai bước trong đó kết quả của một truy vấn có thể được sử dụng để giới hạn dân số trong một truy vấn sau (vẫn bỏ qua việc phân nhóm rõ ràng trong UI).

UI cho điều này là một danh sách các ràng buộc cơ bản có thể được thêm, xóa, kích hoạt và hủy kích hoạt và phủ định. Điều này đã đủ cho hầu hết các truy vấn mà người dùng muốn tạo. Chúng tôi đã có một thiết kế cho một phiên bản mới dựa trên khái niệm dataflow (lấy cảm hứng mạnh mẽ từ vistrails, xem bên dưới) nhưng điều đó chưa bao giờ được thực hiện. Vistrails là một sản phẩm có thể được sử dụng để tạo các đường ống VTK. Nếu bạn muốn đi theo lộ trình của rất nhiều giao diện người dùng, dataflow hoạt động để tạo các truy vấn, nhưng cũng hoạt động để định dạng định dạng đầu ra.

Tìm cảm hứng trong

9
Harald Scheirich

Trái ngược với việc sử dụng lại các bảng trụ như tôi trước đây đã trả lời , đây là giao diện người dùng thử nghiệm mà tôi nghĩ để xử lý nhu cầu lặp đi lặp lại để viết AND hoặc OR.

Nó dựa vào một yếu tố mà bạn phải biết rằng ANDs nằm ngang và ORs là dọc. Nó quản lý để đối phó với logic Boolean khá phức tạp mặc dù.

Tổng quat

Giả sử rằng A, B, C, DE là các biểu thức Boolean.

Để kiểm tra khái niệm ở đây là cách bạn sẽ vẽ hai mặt khác nhau của một tương đương Boolean tiêu chuẩn:

(A and B) or C === (A or C) and (B or C)

enter image description here

Điều này mở rộng cho các truy vấn phức tạp hơn:

((A and B and C) or D) and E

enter image description here

UI thực tế

Đối với bảng dữ liệu này:

enter image description here

Màn hình được chia làm hai:

  1. Một bộ các bộ lọc (có hiệu quả AND truy vấn)
  2. Một sự kết hợp của các bộ lọc

Bạn đặt các bộ lọc (chúng chỉ được nhập với nhật ký điều kiện cơ bản) và sau đó kéo nó qua để 'hợp nhất' nó với truy vấn đầy đủ.

enter image description here

Sau khi kéo bộ bộ lọc mới qua, phía bên trái trở về danh sách chưa được lọc và phía bên phải hiển thị tập dữ liệu 'đã hợp nhất':

enter image description here

Sau đó, bạn có thể kéo xung quanh và chỉnh sửa các biểu thức ở phía bên tay phải - nhưng điều đó cần nhiều công việc hơn.

7
icc97

Microsoft Access đã có một nỗ lực hợp lý tại một giao diện người dùng truy vấn cơ sở dữ liệu đơn giản bằng cách tạo một phiên bản trực quan của "Truy vấn theo ví dụ"

Nó có ngôn ngữ tự nhiên hơn mà tránh cần UI lồng nhau, với chi phí đôi khi hơi thừa các mục trong dòng.

mockup

tải xuống nguồn bmml - Wireframes được tạo bằng Balsamiq Mockups

6
Jason A.

Đó là một câu hỏi cũ, nhưng tôi nghĩ tôi sẽ đóng góp trong trường hợp có ai quan tâm. Mặc dù rất nhiều câu trả lời thú vị đã được cung cấp, tôi đã thiết kế cho ứng dụng của chúng tôi như sau:

enter image description here

Ban đầu chỉ có biểu thức nhóm đầu tiên và một quy tắc. Nhấp vào 'Thêm điều kiện' sẽ thêm một điều kiện mới phía trên nó, trong khi 'Thêm nhóm' thêm một nhóm mới ngay bên dưới nó; các nhóm bổ sung từ nhóm cha mẹ là anh chị em trong khi bạn có thể tạo lồng vô hạn bằng cách sử dụng nút 'Thêm nhóm' từ trong một nhóm lồng nhau.

Trên thiết bị di động, ngăn xếp điều kiện, cùng với nút hành động 'xóa' - giờ đây sẽ thay đổi văn bản của nó thành 'Xóa điều kiện'.

enter image description here

Thiết kế hoạt động tốt, trông đẹp, phản ứng nhanh và cũng không tiêu tốn quá nhiều không gian.

Phần thưởng đã thêm: Trên nhóm, một dòng duy nhất hiển thị điều kiện được tạo cuối cùng, ví dụ:

[Ngày lớn hơn XXX VÀ (Tên bằng Nick)]

chỉnh sửa: Để làm cho những người phi kỹ thuật dễ tiếp cận hơn, tôi sẽ làm theo những gì người khác nói trong chủ đề này - đi theo con đường của Apple. Thay vì AND/OR tôi sẽ sử dụng bối cảnh TẤT CẢ/BẤT K + +.

6
scooterlord

Nếu người dùng của bạn đủ tiến bộ để biết thứ bậc của truy vấn, bất kỳ giao diện đồ họa nào bạn cung cấp cho họ phải đủ linh hoạt để không cản trở họ. Tôi nghĩ rằng một giao diện dựa trên việc kéo và thả các yếu tố để tạo ra một hệ thống phân cấp ngầm là lý tưởng. Đây là một ví dụ trực quan có chú thích mở rộng về cách người dùng có thể xây dựng truy vấn (A and B) or ((not C) or D):

[.__.] Thả A lên bảng. [.__.] + --- + [.__.] | A | [.__.] + --- + [.__.] [.__.] Thả "và" sau A. [.__.] + --------------- ---- + [.___.] | + --- + + ----- + | [.__.] | | Một | và | ... | | [.__.] | + --- + + ----- + | [.__.] + ------------------- + [.__.] [.__.] Thả B vào "...". [.__.] + ----------------- + [.__.] | + --- + + --- + | [.__.] | | Một | và | B | | [.__.] | + --- + + --- + | [.__.] + ----------------- + [.__.] [.__.] Thả "hoặc" sau "và". [.___.] + -------------------------------- + [.__.] | + ----------------- + | [.__.] | | + --- + + --- + | + ----- + | [.__.] | | | Một | và | B | | hoặc | ... | | [.__.] | | + --- + + --- + | + ----- + | [.__.] | + ----------------- + | [.__.] + ------------------------ -------- + [.__.] [.__.] Thả C vào "...". [.__.] + ---------------- -------------- + [.___.] | + ----------------- + | [.__.] | | + --- + + --- + | + --- + | [.__.] | | | Một | và | B | | hoặc | C | | [.__.] | | + --- + + --- + | + --- + | [.__.] | + ----------------- + | [.__.] + ------------------------ ------ + [.__.] [.__.] Thả "không" vào C. [.__.] + -------------------- ------------------ + [.__.] | + ----------------- + + ----------- + | [.__.] | | + --- + + --- + | | + --- + | | [.__.] | | | Một | và | B | | hoặc | không | C | | | [.__.] | | + --- + + --- + | | + --- + | | [.__.] | + ----------------- + + ----------- + | [.__.] + ----------- --------------------------- + [.__.] [.__.] Thả "hoặc" sau "không C". 
 + ---------------------------------------------- ------- + [.___.] | + -------------------------- + | [.__.] | + ----------------- + | + ----------- + | | [.__.] | | + --- + + --- + | | | + --- + | + ----- + | | [.__.] | | | Một | và | B | | hoặc | | không | C | | hoặc | ... | | | [.__.] | | + --- + + --- + | | | + --- + | + ----- + | | [.__.] | + ----------------- + | + ----------- + | | [.__.] | + -------------------------- + | [.__.] + --------------- -------------------------------------- + [.__.] [.__.] Thả D vào "...". [.__.] + ------------------------------------ --------------- + [.___.] | + ------------------------ + | [.__.] | + ----------------- + | + ----------- + | | [.__.] | | + --- + + --- + | | | + --- + | + --- + | | [.__.] | | | Một | và | B | | hoặc | | không | C | | hoặc | D | | | [.__.] | | + --- + + --- + | | | + --- + | + --- + | | [.__.] | + ----------------- + | + ----------- + | | [.__.] | + ------------------------ + | [.__.] + ----------------- ---------------------------------- + [.__.]

Các thành phần truy vấn riêng lẻ (A, B, v.v.) được xây dựng trước khi được thả vào bảng điều khiển, sử dụng hộp tổ hợp hoặc bất kỳ yếu tố nào là cần thiết. Các lề nhỏ và màu sắc xen kẽ có thể làm cho điều này rất dễ đọc, cũng như các quy tắc hiển thị, ví dụ, một chuỗi ors hiển thị ở một cấp độ duy nhất:

[.__.] + ------------------------- + [.__.] | + --- + + --- + + --- + | [.__.] | | Một | hoặc | B | hoặc | C | | [.__.] | + --- + + --- + + --- + | [.__.] + ------------------------- + 

Đương nhiên, các yếu tố truy vấn có thể được mở rộng, thu gọn, sắp xếp lại và chỉnh sửa sau khi được thả vào bảng soạn thảo.

Tôi không nói rằng đây là cách dễ nhất để xây dựng một hệ thống cho mục đích này. Trên thực tế, từ quan điểm phát triển, có lẽ khó khăn nhất có thể. Nhưng đó là điều hiệu quả và trực quan nhất mà tôi có thể nghĩ ra, và dù sao thì về cơ bản nó chỉ là một bản sao của Apple nhưng chú trọng hơn vào hệ thống phân cấp.

Hy vọng điều này chứng tỏ hữu ích trong tìm kiếm của bạn cho những gì đúng.

6
Jon Purdy

CognitoForms có giải pháp AND/OR trực quan nhất mà tôi đã gặp enter image description here

4
leahg

Đây là một giao diện để soạn logic boolean.

Interface for composing boolean logic

Một vài suy nghĩ

  • Giao diện bắt đầu đơn giản
  • Nếu nó trở nên phức tạp, đó là do người dùng đã xây dựng nó từng bước
  • Không chỉnh sửa hoặc kéo/thả - chỉ tạo và xóa các nhánh
  • Các điều kiện là một thả xuống đơn giản trong ví dụ này, nhưng có thể phức tạp hơn hoặc có thể bị phủ định

Sự mơ hồ

Bên cạnh đó, tôi cũng lo ngại về sự mơ hồ của những chiếc áo "chỉ cho tôi màu đỏ và màu xanh" vì người dùng về mặt kỹ thuật có nghĩa là "đỏ hoặc màu xanh " Áo sơ mi.

Tôi nghĩ rằng nếu bạn yêu cầu họ mô tả phiên bản số ít (một "chiếc áo") thì vấn đề có phần giảm bớt. Ví dụ: họ sẽ không nói "Cho tôi xem áo đỏ và xanh" nếu họ có nghĩa là "đỏ hoặc xanh".

4
bendytree

Thêm ví dụ từ ứng dụng bán vé chúng tôi đã phát triển.

Thay vì nhóm "VÀ/HOẶC", chúng tôi đã giải quyết một danh sách thả xuống "tất cả/bất kỳ/không" ở trên cùng. Chính xác là do ví dụ đã đề cập ở trên: khi những người không có kỹ thuật nói "đơn đặt hàng gimme từ New York và New Jersey" thực sự có nghĩa là "HOẶC logic".

enter image description here

Chúng tôi cũng quyết định chống lại việc kết hợp nhiều kết hợp AND/OR phức tạp, vì mọi người đã nhầm lẫn. Thay vào đó, chúng tôi cung cấp cho họ "đệ quy", đề nghị "kích hoạt quy tắc khác" (ở dưới cùng của ảnh chụp màn hình).

2
Alex

Tôi đang làm việc để thiết kế lại một ứng dụng web sử dụng Boolean và hình ảnh bên dưới cho thấy nó hiện đang được thực hiện như thế nào. Người dùng có thể xóa dấu ngoặc khi cần hoặc thêm lại. Tôi đang cố gắng tìm cách tốt hơn để làm điều này để cuối cùng có thể giữ phần này mà người dùng dường như đang sử dụng khá tốt.

UI boolean

2
Gueda

Giao diện người dùng yêu thích của tôi để xây dựng quy tắc là máy chủ Kịch bản của ATG . Kiểm tra này:

alt text

2
Julian H

Để tạo tương đối phức tạp bảng đơn truy vấn, bảng xoay vòng rất hữu ích.

Đồ tốt

  1. Bạn có thể nhận được SUM, AVGGROUP với kiến ​​thức tương đối ít.
  2. Bằng cách chia các trường trên các cột so với các hàng, bạn nhận được AND truy vấn
  3. Tổng số cung cấp cho bạn OR truy vấn
  4. Bạn có thể 'xây dựng' các truy vấn đúng cách - tức là bạn có thể nhanh chóng xem một tập hợp chính, sau đó thêm các hàng/cột và sau đó thêm vào các bộ lọc cho bạn biết dữ liệu nào có sẵn để lọc ra

Thứ xấu

  1. Tôi đoán bạn sẽ đạt giới hạn nếu bạn cố gắng kết hợp nhiều hơn một bảng/bộ dữ liệu.
  2. Tùy thuộc vào mức độ lồng nhau mà bạn muốn AND/OR bạn có thể gặp vấn đề

Nhưng ít nhất bạn không có hàng tấn hộp tổ hợp và các hộp tổ hợp bạn làm có nhiều điều thú vị hơn.

Đây là một cái tôi đã làm trước đó với một số thống kê bóng đá tưởng tượng đáng yêu để đi cùng với nó.

enter image description here

2
icc97

Thật khó để xác định chính xác những gì trực quan cho một cái gì đó thường được xử lý bởi người dùng kỹ thuật (điều đó không nhất thiết phải tìm giao diện nhiều người dùng hơn so với lời nhắc lệnh). Có một lý do cụ thể cho hiệu quả này, vì các truy vấn có thể được chỉ định rõ ràng và được thực hiện trong Dấu nhắc dòng lệnh. Ngoài ra, có lẽ sẽ không làm ai ngạc nhiên khi thiết kế giao diện truyền thống có thể sẽ bị hỏng khi gặp các truy vấn phức tạp hơn.

Tuy nhiên, tôi nghĩ có thể an toàn khi nói rằng khi nói về logic Boolean, chủ đề phổ biến/quen thuộc nhất phải là biểu đồ Venn. Vì vậy, câu hỏi có thể là làm thế nào để lấy các câu lệnh chính xác của các truy vấn cơ sở dữ liệu và kết hợp nó với sự đơn giản của biểu đồ Venn như giao diện?

Tôi nghĩ về mặt khái niệm một giải pháp khả thi sẽ là kết hợp cả bố cục không gian với các tương tác của người dùng phản ánh bản chất của các hoạt động đang được thực hiện. Bằng cách này, bạn sẽ có được khái niệm về sơ đồ Venn cho người dùng trong khi làm cho các hoạt động 'trực quan' đủ để hiểu. Vì vậy, đó là cách sử dụng hiệu quả những gì @bendytree và @sboye đề xuất để thực hiện nhập dữ liệu thực tế nhưng cũng đưa ra kết quả của các hoạt động đó dưới dạng sơ đồ Venn để người dùng có thể thấy ngay liệu họ có thực hiện đúng loại hoạt động boolean không . Nhưng bạn có thể muốn làm cho đầu vào trở nên dễ dàng hơn bằng cách triển khai một số drag'n'drop cho các toán tử boolean và bộ dữ liệu/trường mà bạn muốn hiển thị, lấy cảm hứng từ một số sơ đồ Venn tương tác mà bạn có thể tìm thấy trên các tìm kiếm của Google.

1
Michael Lai

Nếu là thiết bị di động, có một nút cho mỗi thao tác chỉ cần nhập nó vào hộp văn bản. Cung cấp một liên kết để giúp về đại số boolean và tương tự. Điều đó sẽ dễ dàng và linh hoạt.

0
timseal