หลักการตั้งชื่อคอลัมน์เรขาคณิต - 'geom' หรือ 'the_geom'


22

ฉันเริ่มโครงการ PostGIS ครั้งแรกของฉันและในหนังสือและแบบฝึกหัดต่าง ๆ ฉันได้เห็นคอลัมน์รูปทรงเรขาคณิตที่มีป้ายกำกับว่า 'geom' หรือ 'the_geom' เป็นธรรมดามากกว่าอื่น ๆ ?

นอกจากนี้มีเหตุผลที่ดีที่จะใช้ 'geom' / 'the_geom' แทนที่จะเป็นชื่อที่อธิบายเพิ่มเติมสำหรับคอลัมน์รูปทรงเรขาคณิตหรือไม่ (เช่น 'centre_point' สำหรับจุดกึ่งกลางของสถานที่) เราไม่ติดป้ายกำกับคอลัมน์คอลัมน์แบบดั้งเดิม 'the_int' หรือ 'the_string' ดังนั้นทำไมจึงติดป้ายคอลัมน์รูปทรงเรขาคณิตด้วยวิธีนี้

คำตอบ:


17

ในฐานะของ PostGIS รุ่น 2.0 "geom" เป็นชื่อคอลัมน์ทั่วไป (อย่างน้อยฉันก็เห็นเอกสารประกอบ ฯลฯ ) ก่อนหน้านั้นคือ "the_geom" และฉันสามารถคาดเดาได้ว่าทำไม

คุณอาจใช้อย่างปลอดภัย แต่ฉันใช้ "geom" อย่างมีความสุขใน PostGIS และ SpatiaLite

แก้ไข: เพราะฉันพลาดส่วนที่สองของคำถามไปอย่างสิ้นเชิง
โดยทั่วไปชื่อสามัญนั้นสะดวกเพราะเป็นเรื่องธรรมดาสำหรับซอฟต์แวร์ GIS ที่ต้องการรูปทรงเรขาคณิตในตารางที่ถูก จำกัด ให้ใช้กับชนิดที่เจาะจงคือ SRID ฯลฯ ดังนั้นชื่อตารางจึงมีความหมายมากกว่าชื่อคอลัมน์รูปทรงเรขาคณิต ตัวอย่างเช่นคุณคาดว่าจะพบตารางชื่อ "school_zone_polygons", "school_zone_centroids" แต่ละรายการพร้อมคอลัมน์ "geom" ไม่ใช่ตาราง "school_zones" ที่มีคอลัมน์ "geom_polygon", "geom_centroid"

การมีชื่อสามัญหมายความว่าคุณไม่จำเป็นต้องตรวจสอบสคีมาทุกครั้งที่คุณต้องการอ้างอิงคอลัมน์รูปทรงเรขาคณิต


2
เป็นเรื่องปกติในการเขียนโปรแกรมเชิงวัตถุเพื่อตั้งชื่อวัตถุระดับบนสุดโดยการเตรียมบทความ สิ่งนี้แตกต่าง 'the_chair' จากอินสแตนซ์ชนิด 'chair' ในภายหลัง แต่ PostGIS ไม่ทำงานจริง ๆ และการเปลี่ยนเป็น 'geom' ธรรมดาอาจทำให้การใช้งานข้ามแพลตฟอร์มง่ายขึ้น
L_Holcombe

ใช่ฉันเดาเสมอว่ามันคือการป้องกันการชนกัน (ในอนาคตที่เป็นไปได้) ด้วยคำสงวน ไม่มีใครชอบพิมพ์เครื่องหมายคำพูดคู่
โก

1
ขอบคุณ Scro สำหรับการชี้แจง แม้ว่าในอินสแตนซ์ที่คุณมีคอลัมน์รูปทรงเรขาคณิตหลายคอลัมน์ในตาราง (ไม่ใช่ที่ฉันวางแผนไว้) ตัวอย่างตัวอย่างของคุณจะเป็นแบบแผนในอุดมคติ เช่นตาราง "school_zones" กับ "geom_polygon", "geom_centroid" ฯลฯ
Nick

6

เหตุผลหนึ่งที่เป็นไปได้ที่เลือก "geom" หรือ "the_geom" เป็นชื่อสามัญสำหรับฟิลด์ "รูปร่าง" เป็นเพราะคุณสามารถเก็บรูปทรงเรขาคณิตหลายรูปแบบได้ (จุด, เส้น, โพลี ฯลฯ ) ในฟิลด์ "geom" หนึ่งใน ตารางเดียวกัน คุณสามารถมองย้อนกลับไปในปี 2005 เมื่อมีการพูดคุยกันในรายการอีเมล PostGIS

ตัวอย่างเช่นคุณสามารถเก็บบ้านถนนและเขตของคุณทั้งหมดไว้ในฟิลด์ "geom" เดียวกันของตารางเดี่ยวของคุณ มีเหตุผลที่ชัดเจนว่าทำไมคุณอาจเลือกที่จะทำอย่างอื่น แต่นี่อาจเป็นเหตุผลว่าทำไมจึงใช้ชื่อคอลัมน์ "geom" ทั่วไป

หวังว่าผู้ใช้ PostGIS ที่ใช้เวลานานจะพูดคุยรายละเอียดเพิ่มเติมว่าทำไม "geom" จึงถูกเลือก


1

เมื่อใช้ Geoserver REST api ในการเผยแพร่ตาราง PostGis ที่มีอยู่คำสั่ง REST จะล้มเหลวหากคอลัมน์รูปทรงเรขาคณิตไม่มีชื่อ "geom"


2
ฉันค่อนข้างแน่ใจว่าพฤติกรรมนี้เป็นข้อผิดพลาดกับ Geoserver และเมื่อได้รับการแก้ไขแล้วไม่ควรเป็นประเด็นที่ควรพิจารณาอีกต่อไป
Devdatta Tengshe
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.