Sử dụng kiểu dữ liệu mảng [] trong QGIS từ PostgreSQL


9

Tôi chỉ là người mới bắt đầu về GIS, vì vậy tôi sẽ rất vui khi thấy bất kỳ nhận xét nào ở đây.

Tôi có các bảng trong PostgreSQL mà tôi đã kết nối với QGIS. Có các cột trong bảng với kiểu dữ liệu array[]. Nhưng người dùng không dễ dàng chèn dữ liệu vào cột bằng cách sử dụng chế độ xem như {a, d, c}. Có một cách dễ dàng để chỉnh sửa dữ liệu?

Tôi chỉ có một số ý tưởng để đưa dữ liệu vào QGIS như 'a, b, c' và thực hiện triggertrên CHERTN / CẬP NHẬT TRƯỚC KHI sẽ đưa dữ liệu vào Postgresbảng theo đúng nghĩa. Nhưng nó cũng có vẻ không phải là cách tốt nhất.

Câu trả lời:


1

Cách duy nhất mà tôi biết là loại 'bùn mỗi lần sử dụng'.

Ví dụ: tôi có dữ liệu bao gồm một mảng các số thuộc tính (tên thuộc tính propnum_array, dtype varchar[]) và đôi khi tôi muốn xác định bất kỳ dữ liệu nào trong đó mảng trống.

Việc kiểm tra propnum_array = {}hoặc propnum_array is nullhoặc propnum[0]=''(hoặc bất kỳ biến thể nào khác về loại chủ đề đó) khiến cho QGIS bịt miệng, tuy nhiên tôi có thể thực hiện regexp_match( propnum_array,'\\d')hoặc propnum_array ilike '{""}'hoặc propnum_array = '{""}'phân vùng dữ liệu thành những thứ không trống propnum_arrayvà những thứ không có.

Điều này có nghĩa là nếu các mảng có cấu trúc (ví dụ: các giá trị cụ thể tại các phần tử cụ thể trong mảng), bạn có thể quét các giá trị đó: nếu bạn muốn tất cả các giá trị trong đó phần tử thứ hai trong mảng 3 phần tử là 'Y', thì bạn sẽ muốn một cái gì đó giống như regexp_match( propnum_array,'[,]*\'Y\'\[,]*')(khá chắc chắn rằng bạn phải thoát dấu phẩy và dấu ngoặc đơn bên trong chuỗi khớp, nhưng đó là trường hợp sử dụng để người khác lo lắng).

Thực tế là có hiệu propnum_array ilike '{""}'quả, dường như chỉ ra rằng QGIS đối xử với các mảng như thể chúng là văn bản. Ngoài ra, nó có thể khiến chúng chuyển thành văn bản nhanh chóng, nếu được yêu cầu - nhưng sau đó sẽ không có ý nghĩa đối với các kiểu mảng không được ghi nhận (AFAIK). Tôi đã không thể tìm thấy bất kỳ tài liệu nào về xử lý mảng và có những câu hỏi trong danh sách gửi thư osgeo-qgis gần đây như tháng 1 năm 2015.

Tôi đoán gợi ý chính là không có chức năng mảng trong trình soạn thảo biểu thức, mặc dù tôi hiểu rằng plugin 'Data Driven Input Mask' đã xử lý mảng kể từ v1.0.0 (tháng 2 năm 2015).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.