Мова: Українська
Ключове поле — це налаштування, яке можна вибрати під час створення форми. У цій статті пояснюється роль ключових полів в ActivityInfo та як їх вибирати для ваших форм.
Вибір одного або кількох ключових полів є важливим кроком у налаштуванні вашої бази даних із пов'язаними формами.
Вступ
Під час створення форми ви можете додавати поля зі спеціальними налаштуваннями. Коли ви позначаєте поле як ключове у вашій формі, це надає наступні переваги:
Ключові поля відіграють кілька ролей, зокрема:
- Надають спосіб позначати записи в інтерфейсі користувача
- Забезпечують унікальність записів під час введення даних
- Допомагають користувачам шукати пов'язані записи під час введення даних
- Зіставляють пов'язані записи під час імпорту
- Вказують, до яких полів застосовуються блокування за датою
Ми наполегливо рекомендуємо вибирати принаймні одне ключове поле для кожної форми, яку ви створюєте.
Без ключових полів
Кожному запису в ActivityInfo автоматично присвоюється унікальний, автоматично згенерований ідентифікатор, який ніколи не змінюється. Ідентифікатор запису використовується для зберігання зв'язку між двома записами і є важливим для збереження цілісності посилань, але він не дуже зручний для користувача. Ключові поля — це спосіб для розробників форм надати альтернативні, легкі для читання ідентифікатори для записів.
Ідентифікатори записів зазвичай приховані від користувача, але ви можете відобразити їх у вигляді форми, натиснувши «Виберіть стовпці», а потім позначивши «Ідентифікатор запису»:
Якщо ви не виберете ключове поле, ActivityInfo використовуватиме ідентифікатор запису, що може заплутати ваших користувачів. Наприклад, якщо ви посилаєтеся на форму «Провінція», не вибравши ключове поле для цієї форми, вам доведеться вибирати провінцію, знаходячи її ідентифікатор запису:
Ймовірно, це не те, що вам потрібно.
Вибір ключового поля
Коли ви вибираєте ключове поле у вашій формі, ви надаєте читабельну альтернативу ідентифікатору запису для вашої форми. Ідентифікатор запису все ще існує, але ActivityInfo показує користувачам ключове поле замість нього.
Наприклад, якщо у вас є форма Провінція зі списком провінцій в Афганістані, поле «Назва» є очевидним вибором для ключового поля:
Жодні дві провінції не мають однакової назви, тому вибір поля «Назва» як ключового поля є хорошим рішенням. Якщо ви спробуєте додати запис з таким самим значенням у полі «Назва», як у вже існуючого запису, ви отримаєте повідомлення про помилку:
Окрім перевірки на дублікати, ключове поле використовується ActivityInfo для «іменування» кожного запису. Наприклад, якщо ви виберете кілька записів, ActivityInfo використає значення цього поля, щоб показати, які записи були вибрані:
Ключові поля стають ще важливішими, коли ви посилаєтеся на цю форму в іншій формі. Наприклад, якщо у мене є форма «Клініка» з полем посилання, що вказує на форму «Провінція», поле «Назва» провінції буде використовуватися для випадаючого списку у формі введення даних:
Ключове поле також відображається у вигляді таблиці замість ідентифікатора запису, щоб вказати, в якій провінції знаходиться кожна клініка.
За замовчуванням, ключові поля використовуються для пошуку значень у формі посилання. Як альтернативу, ви можете вибрати поля, які бажаєте використовувати для пошуку, або додати власні формули. Для отримання додаткової інформації див. Додавання поля посилання.
Якщо ви імпортуєте список клінік, ключове поле використовується для пошуку ідентифікатора запису провінції для зіставлення:
Множинні ключові поля
Часто не існує єдиного поля, яке б унікально ідентифікувало запис. У нашому прикладі з клініками вище, уявіть, що є дві клініки з назвою «Травматологічний центр MSF»: одна в Кундузі, а інша в Кабулі:
У цьому випадку ми не можемо зробити поле «Назва» клініки єдиним ключовим полем, оскільки тоді ActivityInfo не дозволить нам додати два записи з однаковою назвою, навіть якщо вони знаходяться в різних провінціях.
Для цього випадку ми повинні зробити ключовими полями і поле «Назва», і поле «Провінція»:
Тепер ActivityInfo дозволяє будь-яку унікальну комбінацію двох ключових полів. Наприклад, я зможу додати ще один «Травматологічний центр MSF» у провінції Нурістан, але не ще один «Травматологічний центр MSF» у Кабулі, оскільки така комбінація вже існує.
Якби у нас була третя форма, яка посилається на клініки, наприклад, «Розподіл поставок», то і поле «Назва», і поле «Провінція» були б включені як каскадні поля підстановки:
Обидва ключові поля також відображаються у вигляді таблиці. Хоча «Клініка» — це одне поле, за замовчуванням воно буде відображатися як два стовпці у вигляді таблиці, оскільки має два ключові поля.
Поля серійних номерів
У деяких випадках не існує комбінації полів, яка могла б унікально ідентифікувати запис. Наприклад, при відстеженні невеликої групи бенефіціарів, використання полів «Ім'я», «Прізвище» та «Дата народження» як ключових полів може бути достатнім, оскільки малоймовірно знайти когось з однаковим ім'ям та датою народження.
Однак, зі зростанням кількості людей, це стає неможливим. Зрештою, ви знайдете двох «Джонів Смітів» з однаковою датою народження.
Можливо, ви все ще захочете мати зручний спосіб позначати та ідентифікувати записи. У цьому випадку ви можете додати поле «Серійний номер», яке присвоює послідовний номер кожному новому запису.
Цей серійний номер тоді стає єдиним ключовим полем форми і також використовується для пошуку записів. Наприклад, якби у нас була форма «Медичний огляд», яка посилається на форму «Бенефіціар», нам потрібно було б вибрати ідентифікатор бенефіціара:
Неможливо поєднати поле «Серійний номер» з іншими ключовими полями в одній формі. Однак ви можете використовувати формули префіксів серійних номерів, щоб включити значущу інформацію в код, що полегшить роботу з серійними номерами.