Как смоделировать кладбище - одно очко за умершего или одно за могилу? [закрыто]

12

Это продолжение моего предыдущего вопроса о нашем проекте о том, как с экономической точки зрения избежать внедрения кладбища в систему ГИС…

На кладбище мы можем найти

  • Обычные могилы: до 2 человек
  • Семейные могилы: более 2, некоторые до 20 (сестры из католической общины ...)
  • Памятник войны: около 30 человек
  • Зона рассеяния пепла: не ограничена, начиная с 100 человек
  • Поля с погребальными урнами: до 2 на место
  • Стены с погребальными урнами: до 3 в высоту

Итак, каков лучший путь, определяющий:

  • каждый человек как объект POINT
  • каждая могила как объект POINT, люди являются частью атрибутов

Я бы выбрал для каждого человека в качестве объекта POINT:

  • Один простой файл CSV для всех людей.
  • Столбцы могут быть, например: FirstName - FamilyName - YearDeceased
  • Независимо от количества людей в могиле
  • Таким образом, даже ЗОЛА РАССЕЯНИЯ может войти в файл
  • В конце концов, необходимо написать код, чтобы добавить к результатам поиска других людей, похороненных в той же могиле.

Осложнения, которые я вижу с каждой могилой как объект POINT:

  • Каждому ряду нужны столбцы для максимального количества людей в могиле ...
  • Это означает, что многие клетки будут пустыми из-за нескольких могил с большим количеством людей.
  • Но что с ЗОНОЙ РАССЕЯНИЯ? 100 человек требуют все дополнительные столбцы в таблице ...
  • Разумно иметь все данные в одном файле CSV, но наличие большего количества файлов сильно усложнит ситуацию.

Итак, комментарии приветствуются: человек или могила как объект POINT? Или ничего из этого, и мне нужно сделать это по-другому?

В моем городе 3 года назад у них было бюро, которое делало для них файлы SHP. Мне передали эти файлы, и я заметил, что могилы нарисованы как ПОЛИГОНЫ. Это идет с файлом DBF для «данных могил». Нормальные могилы имеют 4 набора координат, кажется, логика. Но некоторые вещи кажутся мне абсурдными:

  • Существует «стена урны» с гексагональной колумбарией, нарисованной в виде набора гексагональных фигур ... Это означает, что каждая фигура имеет 6 наборов координат ...
  • В «зоне рассеяния пепла» есть столб с маленькими прямоугольными шильдиками, для каждой шильдики они нарисовали прямоугольный POLYGON с 4 наборами координат… Мне кажется, что использование POLYGONS в этих случаях слишком избыточно в базе данных.

Кроме того, поправьте меня, если я ошибаюсь, используя:

  • Для POLYGONS требуются файлы DBF, поэтому редактор DBF (за дополнительную плату)
  • ТОЧКИ требуются только файлы CSV, поэтому достаточно EXCEL (без дополнительных затрат)

В большинстве городов данные умерших людей заносятся в файл CSV:

  • сделано непосредственно в EXCEL или
  • экспортируется из программы на основе DOS, созданной, когда WIN95 был еще рядом ...

Продолжая управлять «данными людей» в одном файле CSV, EXCEL избегает:

  • покупка программного обеспечения, которое может редактировать файлы DBF
  • беспокоясь об импорте «данных о людях» в файл DBF Кажется, что не всегда можно без проблем импортировать, редактировать и сохранять данные из CSV в файлы DBF и не портить ваши данные. Я читал, что это может иметь место, особенно при работе с ArcGis (ESRI).
Патрик Ван Ден Ноортгете
источник
@DenaliHardtail - один участок может иметь несколько маркеров. Рассмотрим ветеранов войны, у которых есть традиционный надгробный камень и военная доска у подножия.
2
Ответы, скорее всего, будут в значительной степени основаны на мнениях, без более подробной информации о программном обеспечении и использовании (например, если вы идете по маршруту соответствующей таблицы, поддерживает ли ваше программное обеспечение / сервер веб-картографирования такие запросы?). Корень вопроса, очко за могилу против человека прост - человек, без вопросов. Точка / могила с несколькими атрибутами людей - плохая идея, потому что это плохой дизайн базы данных по многим причинам, уже упомянутым. Но просить «сделать это по-другому» делает его снова слишком широким и основанным на мнении. В идеале я бы делал точки и области, а просто точки, если бы все было просто.
Крис W
1
Кроме того, QGis может редактировать шейп-файлы (включая .dbf), OpenOffice может редактировать .dbf, они оба бесплатны.
RemcoGerlich
1
Этот вопрос, кажется, набирает обороты. Пожалуйста, помните, что GIS.SE лучше всего фокусируется, один вопрос на вопрос, на который можно ответить не более, чем в нескольких параграфах. На самом деле, весь этот Q & A действительно лучше подходит для чата, чем Q & A. Да, некоторая организация данных, которую вы описываете в предоставленных вам шейп-файлах, выглядит странно / излишне / плохо. Ваше понимание точек по сравнению с полигонами и требование наличия dbf неверно (вы можете захотеть исследовать компоненты шейп-файла), и в лучшем случае ваше впечатление о проблемах csv с ArcGIS искажается. CSV не являются электронными таблицами, электронные таблицы не являются базами данных.
Крис W
2
(Продолжение) Текстовые файлы, электронные таблицы, базы данных и, в частности, пространственные базы данных имеют различные возможности и способы работы. Похоже, вам нужно решить, хотите ли вы вообще использовать ГИС или просто придерживаться веб-картографирования на основе текстовых файлов, содержащих координаты точек. QGIS бесплатен, может выполнять все, что вы хотите с точки зрения ГИС, и эти вещи относительно легко освоить. Компонент веб-картографии - другая история.
Крис W

Ответы:

21

Я бы пошел сложным путем: две таблицы в отношении 1: n

  • один стол с точечным расположением могил
  • другая таблица с Grave-ID и персональными данными

Вы можете построить связь между двумя таблицами, чтобы при выборе могилы были выбраны все записи о людях в таблице.

Идея иметь таблицы с полями вроде Person1, Person2 ... ужасна и плоха.

tookarf
источник
Это не сложно. Это правильно моделирует ваши данные! +1 за хороший реляционный дизайн.
jpmc26
Я тоже так думал. Но я не знаком с «построением отношений», я совсем не эксперт по ГИС. Нужно было бы изучить / изучить это ... Угадайте, что это возможно в QGIS ...
Патрик Ван Ден Ноортгете
@Patrick - Загрузите ваш шейп-файл и файл dBase в QGIS, откройте диалоговое окно свойств вашего шейп-файла, выберите Соединения и создайте соединение между вашей базой данных и данными формы. Попробуйте поиграть немного, чтобы ознакомиться с ним.
takearf
5

Я бы создал полигон для могилы, так как сама могила является земельным участком и имеет отношение один ко многим для людей; одна могила может иметь ноль (незанятых, доступных или для продажи?) или много людей. Вы также можете использовать точку вместо многоугольника. Полигоны будут делать лучшие презентации для продажи и обслуживания.

DenaliHardtail
источник
2
Я не занимаюсь кладбищем, но мне нравится быть настолько тщательным, насколько это возможно. Я бы назвал участки / рассеивающие поля / памятники полигонами, а также точки для могильных камней.
JasonT
@JasonT это хороший момент. Может ли участок (земля) содержать несколько могильных камней / маркеров, если на участке похоронено несколько человек? Я согласен, каждый маркер - это своя точка зрения.
DenaliHardtail
1
У заговора может быть владелец, если он не будет занят, если кто-то заранее договорился о захоронении.
Random832
4

Я бы принял предложение DenaliHardtail об использовании полигонов для представления точных размеров графиков. Этот слой может иметь таблицу с Grave_ID, Grave_Type, Grave_Capacity и Grave_Occupancy_Number. Тогда у вас может быть точечный слой с точками, перекрывающими соответствующие могильные полигоны. Столбцы для таблицы точечного слоя могут быть Person-ID, First_Name, Family_Name, Birthdate, Deathdate, Graveowner и Grave_status (Sold, Unoccupied и т. Д.). Затем вы можете включить соответствующий Grave-ID для каждого человека, чтобы вы могли сопоставить персонажа с могилой и позже создать единую таблицу Excel со всей информацией о могиле и отдельном человеке.

altwitt
источник
3

Нормализация данных приводит меня к некоторым пропущенным идеям / пунктам. Кроме того, я думаю, что Excel может делать все, что вы хотите для «базы данных», которую вы рассматриваете. Подсказка: используйте листы или несколько файлов и используйте варианты функций поиска. Сохранить в полезные файлы для импорта / поиска из QGIS

Я предполагаю эти дискретные таблицы [или таблицы Excel], чтобы начать ваш набор данных. Каждый лист / файл легко обслуживается начинающими пользователями, если столбцы четко заданы (и заморожены как верхняя строка ...), и новичку напоминают, что идентификаторы уникальны и остаются неизменными после назначения. Листы и колонны:

  1. PlotDescription - столбцы включают в себя: PlotID (привязка к многоугольнику), ownerID, plotTypeID (тип сюжета: могила, стена, крипта и т. Д.). Этот лист обычно статичен, пока не будет создан новый график.
  2. Владелец - идентификатор владельца, столбцы с полным описанием (имя / контактный адрес / и т. Д.), Умерший (T / F). Я предполагаю, что если у вас есть несколько владельцев, они будут перечислены полностью в поле имени, и у вас будет один контактный адрес
  3. Покойник - DeceasedID, PlotID, полное имя / etc / другие идентифицирующие данные, elevationCode. До сих пор DeceasedID не найден в другом месте, но хорошая форма создает уникальный идентификатор для каждого умершего; может быть полезен для расширения данных - например, список родственников, живущих для событий или маркетинга.
  4. ElevationCode - ElevationID, а затем краткое описание («inGround», «inCrypt», «первая строка», «вторая строка», «куча пепла» и т. Д.). Этот лист обычно статичен
  5. PlotType - PlotTypeID и краткое описание - крипта, могила и т. Д. Это статический лист

Для мышления Новичка я не предлагаю вам полностью нормализовать проблемы идентичности и их столбцы в том, как они пересекаются между владельцами и умершими, и это создает ненужные 1-много вспомогательных таблиц без каких-либо иных идентификаторов. Я предполагаю, что 1 к 1 между таблицами заговора и владельца, как компромисс для простоты

Я думаю, что эта обобщенная установка будет решать такие проблемы, как: куча пепла, склепы на стенах, отслеживание владельца / сопровождающего, нескольких погибших на участке и многое другое.

Наконец, не забудьте создать несколько постоянных строк в двух таблицах / листах для владельца и умершего: неизвестный владелец; неизвестный покойник; неизвестный множественный покойник; принадлежит кладбищу; не принадлежит; и т.п.

Джон
источник