Каждая строка таблицы базы данных должна быть однозначно идентифицируемой для использования в Insights. В целях определения столбцов, используемых для идентификации уникальности, применяется следующая логика:
- Поиск первичного ключа. Если он найден, используются столбцы, задающие первичный ключ.
- Поиск индекса, помеченного как уникальный. Если он найден, используются столбцы, задающие индекс.
Подсказка:
Неожиданные результаты могут возникнуть, если используется уникальный индекс и в выбранные столбцы включаются нулевые значения. Рекомендуется определить первичный ключ для всех таблиц. Если невозможно определить первичный ключ, столбцы, участвующие в уникальном индексе, должны быть помечены в базе данных как not null.
Если вышеуказанные условия не выполняется, при выборе таблицы для добавления к рабочей книге вы увидите предупреждение, уникальный идентификатор применить необходимо. Уникальный идентификатор - это поле или комбинация полей, которая однозначно идентифицирует каждую строку в данных. Если используется одно поле, оно должно содержать только уникальные значения и не должно содержать нулевые. Если используется несколько полей, отдельные поля не обязательно должны содержать только уникальные значения, но комбинация полей обязательно должна быть уникальной.
Уникальный идентификатор можно создать используя строковые или целочисленные поля. Поля даты, float или double не могут использоваться как уникальный идентификатор.
Примеры
В следующей таблице находятся данные по продажам в сети магазинов. Таблица содержит номер магазина, штат, где он расположен, и общий объем продаж. Два поля, Номер магазина и Общий объем продаж содержат уникальные ненулевые значения. Другое поле, Штат не содержит уникальных значений. В этом случае следует использовать поле Номер магазина как уникальный идентификатор, т.к. каждый магазин перечисляется только один раз и вы знаете, что номер магазина уникален.
Номер магазина | Легко управляйте лицензиями ArcGIS Pro (компонент ArcGIS Desktop) и других продуктов. Назначьте их индивидуальному пользователю или группе пользователей пакетно. | Общий объем продаж |
---|---|---|
1001 | Колорадо | 1,583,296.29 |
1002 | Колорадо | 1,938,495.84 |
1003 | Вайоминг | 1,439,752.57 |
1004 | Монтана | 2,583,485.83 |
1005 | Монтана | 928,573.67 |
Если одно поле не соответствует требованиям к уникальному идентификатору, или если вы не уверены, что значения этого поля всегда останутся уникальными, можно скомбинировать несколько полей, чтобы создать уникальные записи. В следующей таблице содержится число наименований на складе в каждом магазине. В отличие от предыдущего примера, поле Номер магазина не уникально, поскольку в каждом магазине имеется множество наименований. Поле Item ID также не уникально. Поле Количество сейчас уникально, но число наименований в магазине скорее всего может меняться и не всегда будет уникальным, поэтому это поле нельзя использовать как идентификатор. Лучшим идентификатором может быть комбинация полей Номер магазина и Item ID, т.к. каждое наименование указано в магазине только один раз.
Номер магазина | ID элемента | Количество |
---|---|---|
1001 | 123456 | 20 |
1001 | 234567 | 5 |
1001 | 345678 | 16 |
1002 | 123456 | 11 |
1002 | 234567 | 0 |
1002 | 345678 | 21 |
Выбор уникального идентификатора
Выполните следующие шаги, чтобы применить уникальный идентификатор из таблицы базы данных:
- Щелкните значок предупреждения .
Откроется окно Выберите уникальный идентификатор. В окне отображаются непространственные поля таблицы базы данных, не содержащие нулевых значений, с соответствующим типом поля.
- Вы можете сделать следующее:
- Если вы знаете, какой столбец или комбинация столбцов лучше всего подходит для создания уникального идентификатора, выберите поля.
- Если вы этого не знаете, щелкните кнопку Анализировать, чтобы просканировать таблицу на предмет столбцов, содержащих уникальные значения. Столбцы, которые содержат уникальные значения, будут показаны следующим значком:
- Если в таблице нет полей, которые могут использоваться как уникальный идентификатор, или если вы не хотите создавать уникальный идентификатор по имеющимся полям, выберите Копировать таблицу базы данных и создать первичный ключ.
- Щелкните Применить.
Создание первичного ключа
Некоторые таблицы базы данных не содержат столбцов, которые могут исползоваться как уникальный идентификатор. Поэтому, перед началом использования таблицы в Insights необходимо создать первичный ключ. В этом случае, необходимо выбрать Копировать таблицу базы данных и создать первичный ключ.
Insights не редактирует данные в таблицах базы данных, включая добавление столбца первичного ключа. Перед применением первичного ключа, создается копия таблицы базы данных. Местоположение копии таблицы базы данных зависит от разрешений на доступ к подключению базы данных. Если используется подключение "чтение/запись", копия будет сохранена в базе данных. Если используется подключение "только для чтения", таблица копируется и сохраняется в рабочей книге Insights. Наборы данных, скопированные в рабочую книгу, имеют те же функции, что и размещенные векторные слои или выгруженные файлы.