Розуміння цілісності посилань

Мова: Українська
Цю статтю перекладено з англійської за допомогою ШІ, тому вона може містити помилки. Ваші відгуки допоможуть нам її покращити.

У цій статті представлено концепцію пов'язаних записів та цілісності посилань, а також описано, як ActivityInfo забезпечує цю цілісність посилань.

Вступ

Поля посилань дозволяють посилатися на один запис з іншого запису в іншій формі. Наприклад, запис, що описує школу, може посилатися на форму «Область», вказуючи її місцезнаходження. Це створює зв'язок між формами «Школа» та «Область».

Коли ви починаєте додавати записи до форм «Школа» та «Область», ви також створюєте зв'язки між записами шкіл та областей.

На наведеній вище схемі кожна школа посилається на одну область. Коли один запис посилається на інший, ми кажемо, що ці два записи пов'язані.

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

Поля підформ також створюють зв'язки між батьківськими та дочірніми записами.

Редагування записів

Редагування запису в ActivityInfo не впливає на цілісність посилань. Наприклад, перейменування області «North» на «Northern» не впливає на зв'язок зі школами «Kirby» та «Wellsboro». Це тому, що ActivityInfo використовує внутрішній, автоматично згенерований та незмінний ідентифікатор запису (Record ID) для зберігання зв'язку між записами.

Ці внутрішні ідентифікатори зазвичай приховані від користувача. Натомість ActivityInfo відображає запис, на який є посилання, використовуючи ключові поля цієї форми. Однак ви можете показати ідентифікатор запису в поданні «Таблиця», натиснувши «Виберіть стовпці» та встановивши прапорець «Ідентифікатор запису».

Видалення батьківських записів

Коли ви видаляєте запис із форми, що має підформу, усі дочірні записи автоматично видаляються, зберігаючи цілісність посилань.

Коли ви відновлюєте видалений батьківський запис, усі його дочірні записи також відновлюються.

Видалення записів, на які є посилання

Видалення запису, на який посилаються інші записи, порушить цілісність посилань. Якщо ви видалите область «South», то школа «Dalton» більше не матиме дійсного посилання на область. Ваші дані стануть неповними, і ви більше не зможете знати, де розташовані школи.

З цієї причини ActivityInfo зазвичай не дозволить видалити запис, якщо на нього посилаються інші записи.

Screenshot 2024-02-05 at 15.22.10.png
Screenshot 2024-02-05 at 15.22.10.png

З іншого боку, на область «East» немає посилань з боку жодної зі шкіл, тому її можна видалити, не порушуючи цілісності посилань цих двох форм.

Винятки

Існує кілька випадків, коли ActivityInfo не може або не забезпечує цілісність посилань.

Робота в автономному режимі

ActivityInfo не може повністю забезпечити цілісність посилань, коли дані збираються або видаляються в автономному режимі.

Наприклад, якщо польовий працівник додає новий запис про школу, що посилається на область «East», будучи відключеним від сервера, адміністратор може в той самий час видалити область «East». Оскільки на сервері немає записів, що посилаються на область «East», ActivityInfo дозволяє видалити цей запис.

Однак, коли польовий працівник повертається до офісу після тижня роботи в полі та синхронізує дані, новий запис надійде на сервер з посиланням на видалену область «East», порушуючи цілісність посилань.

У цьому випадку цілісність посилань можна відновити, відновивши видалену область «East».

Посилання між базами даних, що належать різним платіжним акаунтам

ActivityInfo дозволяє формам посилатися на форми в інших базах даних, навіть у базах даних, що належать іншим організаціям з різними платіжними акаунтами. Це ключова функція, яка підтримує гуманітарну координацію: багато різних організацій, що працюють в одній географічній зоні, можуть посилатися на спільні набори операційних даних для підтримки координації.

Наприклад, одна організація, Організація А, може збирати дані про школи в регіоні. Партнерська Організація Б може потім додати власну базу даних ActivityInfo та провести оцінку цих шкіл. Оскільки організації працюють разом, Організація Б посилається на форму «Школи», що належить Організації А:

У цьому випадку форма «Оцінка шкіл» та форма «Школи» належать двом різним організаціям. Цілісність посилань залишається важливою, але таким же важливим є право власника даних контролювати власні дані.

Якщо адміністратор з Організації А намагається видалити школу «Dalton», він отримає попередження про наслідки для даних Організації Б, але все одно зможе продовжити видалення.

Власники баз даних

Власники баз даних мають винятковий дозвіл видаляти записи, на які посилаються інші записи, навіть якщо це порушує цілісність посилань.

API

API ActivityInfo наразі не забезпечує цілісність посилань для записів, на які є посилання.

Однак, видалення батьківського запису через API також автоматично видаляє його підзаписи.

Наступний елемент
Розуміння якості даних в ActivityInfo