Все таблицы и классы пространственных объектов ArcGIS должны содержать поле, уникально идентифицирующее каждый объект или каждую запись таблицы.
Для использования поля в качестве поля уникальных идентификаторов в настольных приложениях ArcGIS оно не должно содержать пустые значения (null), должно содержать только уникальные значения и быть одного из следующих типов:
- Целочисленное (только положительные значения)
- Строка
- GUID
- Дата
Значения в поле должны быть уникальными и не пустыми. Вы должны гарантировать, что значения этого поля удовлетворяют этим требованиям.
Когда вы перетаскиваете таблицу баз данных на карту или проверяете определение слоя запросов, ArcGIS считает первое найденное поле с ненулевым значением полем уникального идентификатора по умолчанию. Вы можете использовать это поле или изменить запрос и выбрать другое поле или несколько полей, содержащих уникальные идентификаторы.
Использование одного поля в качестве уникального идентификатора
Если указано единственное поле уникального идентификатора, ArcGIS непосредственно применяет значения из этого поля для уникальной идентификации всех объектов и строк таблицы базы данных.
Если в вашей таблице базы данных нет поля, которое может хранить уникальные идентификаторы, и вы используете базу данных Dameng, IBM Db2, Microsoft SQL Server, Oracle или PostgreSQL , вы можете запустить инструмент геообработки Добавить поле возрастающего ID, чтобы добавить целочисленное поле уникального идентификатора к таблице.
Если в качестве поля уникального идентификатора используется одно текстовое поле, ArcGIS должен привести эти значения в целочисленный формат. Это происходит в ArcGIS каждый раз, когда системе необходим атрибут ID объекта например, при создании выборки карты или открывании атрибутивной таблицы. ArcGIS добавит атрибут ESRI_OID и сохранит в него уникальное целочисленное значение. Этот атрибут является частью только определения слоя; таблица базы данных не изменяется.
Использование составного уникального идентификатора
Вы можете выбрать одно или несколько полей для хранения уникального идентификатора. Если вы решите использовать несколько полей, составные значения этих полей должны быть уникальными. В следующем примере показаны два текстовых поля: member_surname и signup_date. По отдельности значения в этих полях не обязательно должны быть уникальными. Но при составлении их комбинации, значения уникальны, как показано ниже:
member_surname | signup_date |
---|---|
alfred | 2006-09-28 10:15:41 |
dewey | 2006-09-28 10:15:56 |
johnson | 2000-02-19 09:14:50 |
johnson | 2004-12-08 11:02:32 |
mujan | 2011-07-07 12:44:21 |
Комбинация этих значений будет использоваться в качестве ключа для создания уникального целочисленного значения, которое будет сохранено в поле ESRI_OID. Этот атрибут является частью только определения слоя; таблица базы данных не изменяется.
Определение слоя в предыдущем примере будет содержать столбец ESRI_OID, как показано ниже:
member_surname | signup_date | ESRI_OID |
---|---|---|
alfred | 2006-09-28 10:15:41 | 1 |
dewey | 2006-09-28 10:15:56 | 2 |
johnson | 2000-02-19 09:14:50 | 3 |
johnson | 2004-12-08 11:02:32 | 4 |
mujan | 2011-07-07 12:44:21 | 5 |
Помните, что если комбинированные значения в полях или указанном вами одном текстовом поле не являются уникальными, ArcGIS рассматривает эти записи как одинаковые и присвоит им одинаковые значения ESRI_OID.
Если в вашей таблице уже есть поле ESRI_OID, к определению слоя будет добавлен атрибут ESRI_OID_1.