Конвенція про іменування стовпця "Геометрія" - "geom" чи "the_geom"?


22

Я починаю свій перший проект PostGIS, і в різних книгах та навчальних посібниках я бачив стовпчик з геометрією з написом "geom" або "the_geom". Чи одна більш звичайна, ніж інша?

Крім того, чи є вагомі причини використовувати "geom" / "the_geom" замість більш описової назви для стовпця "Геометрія"? (Наприклад, 'centre_point' для центральної точки функції.) Ми не позначаємо звичайні колонки db '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" від будь-яких пізніших екземплярів типу "стілець". Але PostGIS насправді не працює таким чином, і перехід до простого "geom", ймовірно, полегшив впровадження міжплатформних платформ.
L_Holcombe

Так, я завжди здогадувався, що це запобігає (можливе майбутнє) зіткнення із застереженим словом. Ніхто не любить набирати подвійні лапки.
Scro

1
Дякую Скро за уточнення. Хоча у випадку, коли у таблиці є кілька стовпців геометрії (не те, що я планую), ваш контрприклад здається ідеальною умовою. Тобто таблиця "school_zones" з "geom_polygon", "geom_centroid" тощо
Нік

6

Однією з можливих причин того, що "geom" або "the_geom" було вибрано загальною назвою для поля "shape", було те, що ви можете фактично зберігати кілька типів геометрії (точка, лінія, poly тощо) в одному полі "geom" у полі та сама таблиця. Ви навіть можете озирнутися до 2005 року, коли про це йшлося у списку електронних листів PostGIS.

Наприклад, ви можете зберігати всі ваші будинки, вулиці та межі округу в одному полі "геофізики" вашого єдиного столу. Очевидно, є причини, чому ви можете зробити інше, але це може бути причиною того, що було використано загальну назву стовпця "geom".

Сподіваємось, деякі давні користувачі PostGIS задзвонюватимуть детальніше про те, чому насправді був обраний "geom".


1

Під час використання apser Geoserver REST для публікації існуючих таблиць PostGis команда REST завершиться невдачею, якщо стовпець геометрії не буде названий "geom".


2
Я майже впевнений, що ця поведінка є помилкою з Geoserver, і як тільки вона буде вирішена, це вже не повинно бути предметом розгляду
Devdatta Tengshe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.