Quy ước đặt tên cột hình học - 'geom' hoặc 'the_geom'?


22

Tôi đang bắt đầu dự án PostGIS đầu tiên của mình, và trong nhiều cuốn sách và hướng dẫn khác nhau, tôi đã thấy cột hình học được gắn nhãn 'geom' hoặc 'the_geom'. Là một trong những thông thường hơn so với khác?

Hơn nữa, có lý do chính đáng để sử dụng 'geom' / 'the_geom' thay vì một tên mô tả hơn cho cột hình học không? (Ví dụ: 'centre_point' cho điểm trung tâm của một tính năng.) Chúng tôi không gắn nhãn các cột db thông thường 'the_int' hoặc 'the_opes', vậy tại sao lại gắn nhãn cột hình học theo cách này?

Câu trả lời:


17

Kể từ PostGIS phiên bản 2.0, "geom" là tên cột phổ biến. (Ít nhất tôi thấy tài liệu này, v.v.) Trước đó, đó là "the_geom" và tôi chỉ có thể suy đoán tại sao.

Bạn có thể sử dụng một cách an toàn, nhưng tôi rất vui khi sử dụng "geom" trong PostGIS và SpatiaLite.

Chỉnh sửa: Bởi vì tôi hoàn toàn bỏ lỡ phần thứ hai của câu hỏi.
Nói chung, một tên chung là thuận tiện vì thông thường phần mềm GIS yêu cầu hình học trong bảng phải bị ràng buộc với một loại cụ thể duy nhất, SRID, v.v. Do đó, tên bảng có xu hướng mô tả nhiều hơn tên cột hình học. Ví dụ: bạn sẽ tìm thấy các bảng có tên "school_zone_polygons", "school_zone_centroids" mỗi bảng có cột "geom"; không phải là bảng "school_zones" với các cột "geom_polygon", "geom_centroid".

Có một tên chung có nghĩa là bạn không phải kiểm tra lược đồ mỗi khi bạn muốn tham chiếu một cột hình học.


2
Nó phổ biến trong lập trình hướng đối tượng để đặt tên cho các đối tượng cấp cao nhất bằng cách đăng trước một bài viết. Điều này phân biệt 'the_ouch' với bất kỳ trường hợp nào sau này của loại 'ghế'. Nhưng PostGIS không thực sự hoạt động theo cách đó và việc chuyển sang chỉ đơn giản là 'geom' có thể giúp việc triển khai đa nền tảng trở nên dễ dàng hơn.
L_Holcombe

Vâng, tôi luôn đoán rằng đó là để ngăn chặn một vụ va chạm (có thể trong tương lai) với một từ dành riêng. Không ai thích gõ dấu ngoặc kép.
Scro

1
Cảm ơn Scro đã làm rõ. Mặc dù trong trường hợp bạn có nhiều cột hình học trong một bảng (không phải là tôi dự định), ví dụ mẫu của bạn có vẻ là một quy ước lý tưởng. Bảng nghĩa là "school_zones" với "geom_polygon", "geom_centroid", v.v.
Nick

6

Một lý do tiềm năng mà "geom" hoặc "the_geom" được chọn làm tên chung cho trường "hình dạng" là vì bạn thực sự có thể lưu trữ nhiều loại hình học (điểm, đường, poly, v.v.) trong trường "geom" trong trường "geom" trong trường cùng bàn. Bạn thậm chí có thể nhìn lại năm 2005 khi điều này được thảo luận trong danh sách email của PostGIS.

Ví dụ: bạn có thể lưu trữ tất cả các ngôi nhà, đường phố và ranh giới quận trong cùng một trường "geom" của bảng duy nhất của bạn. Rõ ràng có những lý do tại sao bạn có thể chọn làm khác, nhưng điều này có thể đại diện cho lý do tại sao một tên cột "geom" chung được sử dụng.

Hy vọng rằng một số người dùng PostGIS lâu năm sẽ đồng ý với nhiều chi tiết hơn về lý do tại sao "geom" thực sự được chọn.


1

Khi sử dụng api Geoserver REST trong xuất bản các bảng PostGis hiện có, lệnh REST sẽ thất bại nếu cột hình học không được đặt tên là "geom".


2
Tôi khá chắc chắn rằng hành vi này là một lỗi với Geoserver và một khi nó đã được giải quyết, nó sẽ không còn là một điểm cần xem xét
Devdatta Tengshe
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.