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

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

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

Вступ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Винятки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

API

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

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

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