Bisakah PostGIS membatasi kolom menjadi multipoligon dan poligon?

10

Saat ini saya menggunakan PostGIS 1.5.3, tetapi saya akan segera memperbarui ke 2.0. Jadi harap perhatikan perbedaan antara dua versi yang relevan dengan pertanyaan berikut.

  • Apakah mungkin untuk membuat kolom tipe geometri PostGIS yang memungkinkan penyisipan poligon dan multipoligon tetapi membatasi penyisipan tipe geometri lain tanpa secara manual memodifikasi kendala yang dihasilkan PostGIS saat memanggil AddGeometryColumn?
  • Apakah ada alasan untuk tidak melakukan ini? Secara khusus, apakah PostGIS menyimpan metadata apa pun yang secara manual memodifikasi kendala mungkin berdampak negatif? (Saya sangat baru di PostGIS, jadi maafkan saya jika ide menyimpan metadata PostGIS tidak masuk akal.)
  • Seberapa signifikankah overhead yang terjadi dengan menggunakan multipolygons untuk semuanya?

Saya sudah sadar menggunakan ST_Multi untuk mengubah poligon menjadi multipoligon sebelum penyisipan, jadi jika itu tidak mungkin atau bukan ide yang baik, saya akan melakukannya.

jpmc26
sumber

Jawaban:

6

Untuk setiap pertanyaan Anda ...

  1. Bukan tanpa memodifikasi kendala secara manual.

  2. Ada beberapa metadata yang disimpan dalam geometri PostGIS. Secara teknis, tidak ada alasan untuk tidak melakukan ini. Jika Anda ingin kolom berisi poligon atau multipoligon, itu terserah Anda. Alasan umum untuk tetap dengan satu jenis geometri per kolom adalah kesederhanaan karena tabel tumbuh dan / atau jika tabel tersebut besar.

  3. Multipoligon yang hanya terdiri dari satu poligon akan lebih besar dari sekadar poligon, tetapi tidak signifikan. Kecepatan permintaan spasial (dengan indeks yang sesuai) multipoligon dengan satu poligon vs hanya satu poligon akan sama.

Untuk data saya, jika kolom mengandung poligon, saya memiliki kolom menjadi multipolygon karena memungkinkan untuk kemungkinan bahwa multipolygon akan dimasukkan dalam kolom. Jalankan ST_Multi saat Anda memasukkan.

dustymugs
sumber