本隨筆是根據outsystem的英文文檔第六章進行翻譯,僅包含部分。
1.創建數據關系
數據類型很少是孤立的
- 豐富的數據模型,保證數據間可以建立關系
- 數據間的關系重要性和數據本身是一樣的
2.outsystem中的數據
為了創建數據間的關系, 一個實體必須有一個標識符(主鍵)
- 平台自動生成Id屬性,為長整形(默認)
- Is Mandatory
- Is AutoNumber,默認
- 可能的類型:文本,整形/長整形,或者任何其它實體標識符
outsystem只有簡單的主鍵。沒有復合鍵。
3.outsystems數據引用
實體通過彼此的標識符進行引用
- 創建一個實體標識類型的引用屬性(外鍵)
- Is Mandatory 應用屬性會由數據庫進行檢查
- 使用EntityNameId作為一個屬性名稱來暗示平台(例如:屬性UserId 會自動轉換成User 標識符類型)
對於部分屬性,NullIdentifier() 等價於NULL值。
3.1一對一的關系

擴展實體
擴展實體和基類的實體共享自己的identifier(標識符)。如上基類實體Author,擴展實體Biogreaphy。
擴展實體是基類實體的延伸:
- biography有一個Author Identifier(基類的標識符)類型的標識符
- Is AutoNumber 將會被自動設置為No類型
- biography 標識符必須明確的分配給Author identifier
3.2一對多

主從關系
從屬實體已用它的主實體
一個Pulisher發布多本Books
- Book實體有一個指向Publisher實體的引用屬性
多個Books 都是self-published, 所以他們沒有Publisher
- 引用屬性既可以是mandatory,也可以不是mandatory
3.3多對多

4.連接實體
一個中間實體是用來在兩個實體間創建聯系的。
由於一個Book有多個Authors,而一個Author又可以寫多本Books, 這樣就需要一個BookAuthor聯系實體。
- Author標識符類型的引用屬性AuthorId
- Book標識符類型的引用屬性BookId
- 用來表示BookId和AuthorId的獨一無二的索引(建議)
5.參照完整性

如何保證
- 為每個引用屬性指定刪除規則
當刪除引用實體實例時
- Protect-不允許刪除引用實體實例(默認)
- Delete-將引用實體實例級聯刪除為該實體的實例
- Ignore-不保證參照完整性(非常不建議使用)
6.索引

通過某些屬性加速數據檢索
- 花費額外的寫/存空間
- 引用屬性會自動創建索引
- 自定義索引可以應用到單個或多個屬性
避免重復
- 定義所以為Unique
7.實體圖

數據模型可視化表示法
- 由開發人員設計
- 數據模型的局部視圖
- 代表
- 實體
- 關系導航
- 關系刪除規則:
- Protect
- Delete
- Ignore
Note:個人覺得outsystem不合適自身情況,停止更新關於outsystem隨筆。(2020-01-06)
在接觸outsystem這段時間,找到了個相關QQ群(320049517),感謝群主提供的文檔。
