1. 程式人生 > >OutSystems中的實體關係

OutSystems中的實體關係

在Service Studio中,實體不僅包含業務實體的邏輯定義,還包含其與其他實體的關係。

通過定義單個引用屬性(在資料庫術語中也稱為“外來鍵”)來建立關係。其資料型別是<Entity> Identifier,對應於另一個實體的Identifier的型別。引用屬性顯示不同的圖示(取決於關係的型別),這在實體圖中可見。

關係型別包括:
一對一;
一對多;
多對對;

一對一關係

兩個實體之間的一對一關係表示實體A中的一個記錄對應於實體B中的一個記錄,而實體B中的一個記錄在實體A中只有一個相關記錄。

在這種情況下,引用屬性可以在實體A也可以在實體B中。要確定哪個實體包含引用屬性,您必須考慮關係的可選性。當關系的雙方都是強制性的或可選的時,您必須決定應該新增關係的實體,考慮哪個實體共享型別。

現在瞭解如何建立一對一的關係。

示例

假設在您的業務邏輯中,您擁有以下實體:

Contact
ContactPhoto

ContactPhoto始終屬於 ContactContact可以關聯一個ContactPhoto。這會幫助你定義 Contact實體。

要實現此關係,ContactPhoto的主鍵必須是 Contact主鍵的引用屬性:

在這裡插入圖片描述

一對多關係

兩個實體之間的一對多關係表示實體A中的一個記錄對應於實體B中的多個記錄,但實體B中的一個記錄在實體A中只有一個相關記錄。

在這種情況下,引用屬性必須位於關係的“多的那邊”,即實體B中。

現在我們來了解如何建立一對多關係。

示例

假設在業務邏輯中,您擁有以下實體:

Company
Contact

Company有一個或多個 ContactContact屬於Company

要實現此關係,引用屬性必須位於實體Contact中:

在這裡插入圖片描述

多對多關係

兩個實體之間的多對多關係表示實體A中的一個記錄對應於實體B中的多個記錄,而實體B中的記錄可以在實體A中具有多個關聯記錄。在這種情況下,您必須建立第三個具有至少兩個實體A和實體B的參考屬性的實體。實際上,多對多關係是與該第三實體的兩個一對多關係。

現在我們來了解如何建立多對多關係。

示例

假設,在業務邏輯中您擁有以下實體:

Company
Contact

Contact可以從Company移出。反過來,Company可以擁有多個Contact

要實現此關係,必須建立第三個實體:CompanyContact,至少具有以下屬性:

Id
CompanyId
ContactId

在這裡插入圖片描述

引用完整性

在實體A和實體B之間建立關係時,必須指定要在模組中應用的引用完整性機制,即如果刪除實體A中的相應記錄,則必須在實體B中發生什麼。在OutSystems中,此行為由引用屬性的“刪除規則”屬性定義。

關係索引

定義引用屬性後,將自動建立索引以提高模組的效能。呼叫此索引:

AutoIndex_<reference attribute name>

並涵蓋實現關係的引用屬性。您不應該刪除此索引。如果這樣做,Service Studio會顯示警告,通知您此操作可能對效能產生的影響。