PostGIS có thể giới hạn một cột thành đa cực và đa giác không?


10

Tôi hiện đang sử dụng PostGIS 1.5.3, nhưng tôi sẽ sớm nâng cấp lên 2.0. Vì vậy, xin vui lòng lưu ý bất kỳ sự khác biệt giữa hai phiên bản có liên quan đến các câu hỏi sau đây.

  • Có thể tạo một cột của loại hình học PostGIS cho phép chèn đa giác và đa hình nhưng hạn chế chèn các loại hình học khác mà không sửa đổi ràng buộc mà PostGIS tạo ra khi gọi AddGeometryColumn?
  • Có lý do để không làm điều này? Cụ thể, PostGIS có lưu trữ bất kỳ siêu dữ liệu nào tự sửa đổi ràng buộc có thể tác động tiêu cực không? (Tôi rất mới với PostGIS, vì vậy hãy tha thứ cho tôi nếu ý tưởng về siêu dữ liệu lưu trữ PostGIS là vô lý.)
  • Làm thế nào đáng kể là bất kỳ chi phí phát sinh bằng cách sử dụng đa linh kiện cho tất cả mọi thứ?

Tôi đã biết sử dụng ST_Multi để chuyển đổi đa giác thành đa kênh trước khi chèn, vì vậy nếu không thể hoặc không phải là ý tưởng hay, tôi sẽ làm điều đó.

Câu trả lời:


6

Đối với mỗi câu hỏi của bạn ...

  1. Không phải không tự sửa đổi các ràng buộc.

  2. Có một số siêu dữ liệu được lưu trữ trong hình học PostGIS. Về mặt kỹ thuật, không có lý do gì để không làm điều này. Nếu bạn muốn một cột chứa đa giác hoặc đa giác, điều đó tùy thuộc vào bạn. Lý do chung để gắn bó với một loại hình học trên mỗi cột là sự đơn giản khi bảng phát triển và / hoặc nếu bảng lớn.

  3. Một đa giác chỉ bao gồm một đa giác sẽ lớn hơn chỉ đa giác, nhưng không đáng kể. Tốc độ truy vấn không gian (với chỉ số thích hợp) đa giác với một đa giác so với chỉ một đa giác sẽ giống nhau.

Đối với dữ liệu của tôi, nếu cột chứa đa giác, tôi có cột là đa giác vì nó cho phép trong trường hợp đa giác sẽ được chèn vào cột. Chỉ cần chạy ST_Multi khi bạn đang chèn.

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.