APaaS產品設計之數據模型(表單設計器)
本文介紹了APaaS產品中的數據模型(表單設計器)的作用和實現方式。通過表單模型和數據表格容器,可以實現用戶友好的數據輸入和驗證,以及數據的存儲和展示功能。
一、為什么要講
做了近四年的SaaS產品經理,我想講講為什么需要APaaS,因我們公司做的是面向建筑設計領域的協同辦公平臺,我們的核心是圍繞以項目全生命周期為主,提供涵蓋項目經營管理系統(項目立項)、項目管理系統、協同設計系統(CAD)、電子出圖系統、電子檔案管理系統、出版管理系統。
過程中遇到以下兩個問題:
- 對企業自身來講,100家企業會有100種業務場景和流程,所以說無法通過簡單的SaaS系統去進行適配,而企業一般也不可能因為系統的引進,從而去改變自身的業務流程。
- 這些企業中有些需求已經通過其它廠商解決了,會形成數據孤島。比如考勤用釘釘、HR用薪人薪事、審批用泛微、項目管理用我們的、財務系統用金碟。
1. 實現思路
1)每個企業都有其獨特的業務流程和需求,作為垂類領域SaaS平臺,就需要進行面向企業場景的定制化改造。
定制化改造的核心是貼合企業的業務流程,即SOP(標準作業流程)。通過對企業的業務流程進行深入理解和分析,可以通過表單的編排和流程的編排來實現系統的構建。
這樣的定制化改造可以滿足企業對業務信息錄入、OA系統、HR系統、工單系統等各種需求。使用APaaS(應用平臺即服務),可以實現面向企業定制場景的基礎系統的快速搭建APaaS提供了表單的編排和流程的編排功能,使企業能夠根據自身的業務需求和流程特點,快速構建定制化的系統。
此外,APaaS還提供了分析看板和權限管控等功能,進一步增強了系統的靈活性和可定制性。
2)設計原則是:各大模塊可獨立存在,也可以組裝在一起使用。
支持API和excel從各大平臺直接接入至平臺。市場角度來說先滲透進企業內部,同時也實現數據一致性。
2. APaaS(Application Platform as a Service)開發的核心價值可以總結為以下幾點
1)產出可復用模型,快速開發并提升部署效率
APaaS開發平臺提供了一系列的可復用組件、模塊和功能,開發人員可以通過拖拽、配置和定制的方式快速構建應用程序。
這些可復用的模型和組件可以被多個應用程序共享和重復使用,大大縮短了開發周期,提高了部署效率。
2)降低使用門檻,敏捷適應業務需求
傳統的應用開發需要開發人員具備一定的編程和技術能力,而APaaS開發平臺通過提供可視化的界面和簡化的開發工具,降低了應用開發的技術門檻。
非專業開發人員也能夠通過APaaS平臺進行應用開發,快速適應和響應業務需求的變化。
3)打通數據孤島
企業中常常存在著各種數據孤島,數據存儲在不同的系統和應用中,互相隔離且難以共享。
APaaS開發平臺提供了數據集成和連接的能力,可以通過簡單的配置和綁定,將不同系統和應用中的數據進行整合和共享,實現數據的打通和流動。
除了以上核心價值,APaaS開發還具備一定的靈活性和通用性。開發者可以根據自身需求自由定義前端界面組件、數據源綁定方式、數據模型、業務邏輯和工作流等,甚至可以進一步修改源碼,定制符合特定業務需求的應用程序。
這種靈活性和通用性使得APaaS開發能夠適應不同行業和企業的需求,提供個性化的解決方案。
總體而言,APaaS開發的核心價值在于提供快速開發、部署和適應業務需求的能力,通過產出可復用模型和打通數據孤島,幫助企業提高效率、降低成本,并加強業務的靈活性和可持續發展能力。
二、那我們來講講什么是數據模型
前面提到了APaaS平臺通過數據模型+角色權限+視圖+流程可以快速產出可用模型。那么今天就來說說,其核心之一的數據模型。
數據模型是一種概念性的表示,用于描述現實世界中的數據、數據之間的關系以及數據的屬性。它是對數據的組織、結構和語義的抽象和規范化。數據模型通常用于設計和構建數據庫系統、信息系統和軟件應用程序。
常見數據模型:
- 關系型數據模型(如關系數據庫):使用表格和關聯關系來組織數據。
- 層次數據模型:數據以樹狀結構組織,每個節點可以包含多個子節點。
- 面向對象數據模型:數據以對象的形式組織,包括屬性和方法。
- 文檔數據模型:數據以文檔(如JSON、XML)的形式組織。
關系型數據模型
關系型數據模型對應的數據庫自然就是關系型數據庫了,這是目前應用最多的數據庫。(關系型數據庫如MySQL、Oracle、Microsoft SQL Server)
定義:關系型數據模型是一種基于關系(表格)的數據組織方式,其中數據以二維表格的形式存儲。它通過定義表格、行和列之間的關系來表示數據。
每個表格代表一個實體,每行代表一個數據記錄,而每列代表一個數據字段或屬性。
關系型數據模型具有以下特性:
- 表格結構:關系型數據模型使用表格作為數據存儲的基本單位。每個表格由列和行組成,列定義了數據的屬性,而行表示數據的具體記錄。
- 實體關系:關系型數據模型支持多個表格之間的關聯關系。這些關聯關系通過定義主鍵和外鍵來建立,以實現表格之間的數據關聯和查詢。
- 數據一致性和完整性:關系型數據模型通過定義約束條件和規則,確保數據的一致性和完整性。主鍵約束保證每行數據具有唯一標識,外鍵約束保證表格之間的關聯關系正確。
- 靈活性和擴展性:關系型數據模型具有良好的靈活性和擴展性。它可以適應不同類型和結構的數據,支持添加、刪除和修改表格、列和記錄等操作。
- 數據獨立性:關系型數據模型具有數據獨立性的特性。這意味著數據的邏輯表示與物理存儲相分離,可以在不影響應用程序的情況下進行物理存儲結構的改變。
- 查詢語言:關系型數據模型使用結構化查詢語言(SQL)作為數據操作和查詢的標準語言。SQL提供了豐富的查詢功能,包括選擇、插入、更新和刪除數據的操作。
- 數據安全性:關系型數據庫提供了安全性機制,如用戶身份驗證、訪問控制和數據加密,以保護數據免受未經授權的訪問和惡意操作。
- 并發控制:關系型數據庫支持并發控制機制,以處理多個并發的事務。并發控制確保在多個用戶同時訪問和修改數據時,數據的一致性和隔離性得到保證。
這些特性使得關系型數據模型成為企業內部信息化產品中常用的數據模型,適用于許多應用場景,如數據管理系統、企業資源規劃(ERP)系統、客戶關系管理(CRM)系統等。
三、關系型數據模型的實現方式——數據表格
關系型數據模型使用數據表格來表示實體、屬性和它們之間的關系。
1. Microsoft Excel≠數據表格
Microsoft Excel 不是像 MySQL 或 Oracle 那樣的傳統關系數據庫管理系統 (RDBMS)。
雖然 Excel 確實具有一些類似于關系數據模型的功能,例如將數據組織到表中以及定義表之間的關系的能力,但它并不完全遵守關系數據庫的原則。
Excel 主要是一種電子表格應用程序,允許用戶以表格格式存儲和操作數據。 它提供數據輸入、計算、格式化和可視化的功能。 雖然它可以處理結構化數據并執行基本數據分析,但它缺乏關系數據庫的一些關鍵特性,例如數據完整性約束、數據查詢能力(如 SQL)以及對復雜事務的支持。
Excel 通常用于個人和小規模的數據管理任務,但它可能不適合處理大量數據或復雜的關系數據模型。 對于更高級的關系數據庫需求,通常會采用專用的 RDBMS 解決方案。
2. 數據表格的構成要素
數據表格通常由以下要素構成:
- 表名(Table Name):數據表格在數據庫中有一個唯一的名稱,用于標識和引用該表格。
- 列(Column):數據表格由多個列組成,每一列代表一個屬性或字段。列定義了數據的類型、長度以及其他約束條件。
- 行(Row):數據表格中的每一行表示一個數據記錄或實體,也稱為元組(Tuple)。行包含了與列相對應的實際數據值。
- 主鍵(Primary Key):主鍵是用于唯一標識每一行的一列或一組列。主鍵的值必須是唯一的且不為空,用于保證每一行的唯一性和檢索的準確性。
- 外鍵(Foreign Key):外鍵是用于建立表格之間關系的列,它引用了其他表格的主鍵。外鍵用于確保數據表格之間的引用完整性和一致性。
- 約束條件(Constraints):約束條件定義了數據的完整性規則,用于限制數據的取值范圍和關聯關系。常見的約束條件包括唯一約束、非空約束、默認值約束等。
- 索引(Index):索引是一種數據結構,用于加快數據表格的檢索速度。索引可以基于一個或多個列,通過預先排序和組織數據,提供更高效的數據訪問。
- 其他屬性和選項:數據表格還可以具有其他屬性和選項,如表格注釋、觸發器、視圖等,用于進一步管理和操作數據。
這些構成要素共同定義了數據表格的結構、數據類型、約束條件以及與其他表格之間的關系,使得數據能夠被有效地存儲、查詢和操作。
3. 典型的數據表格例子之Mysql
傳統開發模式下,開發人員會根據業務需求建表。
1)創建數據模型
Contract表格表示合同信息,包含ContractID作為主鍵,表示合同的唯一標識,以及其他屬性如ContractName、StartDate和EndDate。
Party表格表示相關方信息,包含PartyID作為主鍵,表示相關方的唯一標識,以及其他屬性如PartyName、Address和ContactNumber。
ContractParty表格用于建立Contract表格和Party表格之間的關系,它包含了ContractID和PartyID作為外鍵,分別與Contract表格和Party表格的主鍵關聯,以及Role屬性表示相關方在合同中的角色。
2)設計表
3)預覽表
四、APaaS平臺怎么通過可視化界面把表單設計與數據庫建表工作結合起來
1. 通過容器的方式實現數據表格其在可視化界面的渲染
APaaS平臺通常通過以下方式來實現數據表格容器:
- 可視化表格設計器:提供可視化的表格設計器,允許用戶以圖形化的方式創建和設計數據表格。用戶可以通過拖放和設置屬性來定義表格的列和屬性。
- 數據模型定義:允許用戶定義數據模型,包括表格和列的結構。用戶可以定義列的數據類型、長度、約束條件等。
- 表格操作和行為:提供一系列操作和行為選項,用于對數據表格進行操作和處理。例如,用戶可以定義增加、刪除、修改表格記錄的操作,以及表格之間的關聯關系和查詢操作。
- 數據綁定:支持將數據表格與其他組件或數據源進行綁定。這意味著表格可以顯示和編輯與其他組件或數據源相關聯的數據。用戶可以指定數據源,如數據庫表、API接口或其他數據服務。
- 用戶界面定制:允許用戶自定義表格的外觀和行為。用戶可以調整表格的樣式、布局和交互方式,以滿足特定的需求。
- 數據驗證和約束:提供數據驗證和約束機制,以確保數據的完整性和一致性。用戶可以定義列級別和表級別的約束條件,如唯一性約束、非空約束等。
- 數據過濾和排序:支持對表格數據進行過濾和排序。用戶可以定義過濾條件,以便只顯示滿足條件的數據。同時,用戶可以指定排序規則,對表格數據進行排序。
- 數據導入和導出:提供數據導入和導出功能,以便將表格數據從外部源導入到表格中,或將表格數據導出到外部文件或數據存儲中。
1)騰訊微搭
① 功能展示
在頁面設計組件中,提供數據容器:
數據容器組件介紹:
- 數據列表:適用于從數據源中查詢多條數據,并將返回列表循環展示的場景,如查詢用戶列表。
- 數據詳情:適用于從數據源中查詢一條數據,并將返回數據展示的場景,如查詢訪客預約詳情。
- 表單容器:快捷實現表單數據的提交與展示場景。綁定數據源后,可根據字段類型自動生成單行輸入、下拉選擇、提交按鈕等組件。
- 數據表格:以表格形式展示多行數據,支持對數據進行排序、搜索、分頁、自定義顯示內容和操作。
數據列表顯示效果如下圖所示:
數據詳情顯示效果如下圖所示:
表單容器顯示效果如下圖所示:
數據表格顯示效果如下圖所示:
目前微搭已經實現根據選擇的數據表,可以直接生成選擇表對應的列表、創建、更新、詳情頁面。用戶體驗絕佳!
② 操作演示
創建模型應用:選擇數據源(創建數據表、表字段、表關系),數據源支持跨應用共享選擇。必須選擇一個數據源才能走下一步。
選擇完成之后,會自動生成如所下圖所示幾個頁面,列表、創建、更新、詳情。這個地方特別符合用戶心智模型,點贊?。。?/p>
對于組件的解釋,跟隨詳情跳轉鏈接,這個細節特別好,點贊!
③ 技術實現
騰訊微搭使用 Kubernetes 作為其應用程序容器的管理和編排平臺,通過利用 Kubernetes 的自動化和彈性能力,提供高效、可靠的微信小程序開發和部署環境。
2)Microsoft Power Apps
① 功能展示
- “編輯”窗體:則用戶可以編輯相應字段、創建記錄,以及將所做的更改保存到數據源。
- “顯示”窗體:則用戶可以顯示某個記錄的所有字段,或者只顯示您指定的字段。
② 操作演示
選擇“編輯”窗體:
關聯了數據源的表單,不支持刪除:
這個細節特別好,值得點贊?。?!
③ 技術實現
在 Microsoft Power Apps 中,應用程序的運行和托管是在 Microsoft Azure 云平臺上進行的。Azure 提供了一系列的托管服務和平臺功能,用于運行和擴展 Power Apps 應用程序。
Microsoft Azure 平臺本身支持容器化應用程序的部署和管理,并提供了 Azure Kubernetes Service(AKS)作為托管 Kubernetes 服務。這使得開發人員可以在 Azure 上部署和管理基于Kubernetes 的應用程序。
但這與 Microsoft Power Apps 平臺本身的功能和架構是分開的,Power Apps 并不直接使用 Kubernetes 作為其容器管理解決方案。
2. 怎么做
有兩種開發方式:
- 表單驅動。在表單驅動的開發方式中,應用的核心是表單。開發者通過定義和配置表單來構建應用的用戶界面和交互邏輯。表單中包含了輸入字段、驗證規則、布局等信息,用于收集用戶輸入的數據并進行處理。表單驅動的開發方式更加關注用戶界面和交互邏輯的設計,開發者需要根據具體的業務需求來創建和配置表單,定義數據的輸入、展示和驗證方式。
- 模型驅動。在模型驅動的開發方式中,應用的核心是數據模型。開發者通過定義和配置數據模型,包括實體、屬性、關聯關系等,來構建應用的數據結構和業務邏輯。應用的用戶界面和功能是基于數據模型自動生成的,開發者可以通過配置數據模型的屬性、視圖、操作等來定義用戶界面和交互邏輯。模型驅動的開發方式強調數據驅動的應用開發,開發者主要關注數據模型的設計和配置,而較少關注具體的界面設計和編碼。
騰訊微搭和Microsoft Power Apps都是都采用了表單驅動和模型驅動相結合的開發模式來實現表單設計器
騰訊微搭,它結合了表單驅動和模型驅動的特點。在微搭中,可以通過簡單的表單配置來創建用戶界面和交互邏輯,快速構建數據錄入和展示界面。
同時,微搭也支持通過數據模型的定義和配置來實現更復雜的業務邏輯和數據關聯。開發者可以根據具體的需求選擇合適的方式進行開發,靈活地使用表單驅動和模型驅動。
Microsoft Power Apps,它同樣采用了表單驅動和模型驅動的混合模式。在Power Apps中,可以通過拖拽和配置表單控件來創建用戶界面,并通過設置控件的屬性和事件來定義交互邏輯。
此外,Power Apps還提供了數據模型的支持,開發者可以定義實體、屬性和關聯關系,并使用公式和規則來實現數據的處理和業務邏輯。通過表單驅動和模型驅動的結合,Power Apps提供了更靈活、細粒度的開發方式。
核心設計思路:
- 數據源綁定。將數據源綁定邏輯從表格組件中分離出來。這可以通過創建一個數據服務或數據層的模塊來實現。該模塊負責與數據源進行通信,獲取數據,并將數據傳遞給表格組件進行顯示。這樣,表格組件只需要專注于展示數據和用戶交互,而不需要處理數據獲取的細節。
- 容器和內容分離。將表格組件放置在一個獨立的容器組件中。容器組件負責管理表格的布局和樣式,并提供必要的交互功能,如排序、篩選等。表格組件則負責渲染和展示數據,并處理用戶交互事件。通過將容器和內容分離,可以實現更好的模塊化和組件重用性。
1)數據表格搭建
實現思路:
- 準備數據:首先,準備需要展示的數據。數據可以來自數據庫、API接口、本地文件或其他數據源。確保數據的結構和格式與表格組件所期望的一致。
- 選擇表格組件:根據需求和技術棧,選擇適合的表格組件或庫來渲染數據表格。
- 綁定數據:將準備好的數據綁定到表格組件中。
- 設置表格屬性:根據需要,配置表格的屬性和樣式??梢栽O置列的名稱、數據類型、排序方式、篩選選項、分頁設置等。此外,你還可以自定義表格的樣式、顏色和布局。
- 處理交互和事件:根據需要處理表格的交互和事件。例如,你可以添加點擊表頭排序、選中行、編輯數據、刪除數據等功能。通過監聽表格組件的事件或使用相應的API方法,來實現這些交互和操作。
- 渲染表格:在可視化頁面中使用相應的代碼將表格組件渲染出來。這通常涉及在HTML文件中插入表格組件的標記,并在適當的位置使用JavaScript代碼將其實例化和渲染。
① 騰訊微搭
功能展示
數據源:騰訊云微搭低代碼的數據源提供了數據集合本身的存儲以及操縱數據的各種方法,本質上是一系列操作數據的方法集合。低碼平臺提供了數據源管理功能,可以創建、管理多個數據源。
數據源類型及功能概覽:
操作演示
新建數據模型(創建表):
設計表字段屬性:
通用選項集(合同狀態、合同類型),通用選項集管理就是枚舉值的管理:
表與表是怎么關聯的,例如下圖所示:為合同相關字段,提供數據類型:關聯關系,關聯模型選擇對應的表“相關方”,關聯類型選擇:“1:1”,“N:1”的關系。
以及刪除“相關方”時,對應的“合同”數據不刪除就是當“合同”與“相關方”有關聯數據時,“相關方”不允許被兩個選項。這一點微搭考慮很到位。
數據源管理
在對應數據模型后面,提供了對該數據的管理入口。
② Microsoft Power Apps
功能展示
數據源的類型:數據源可連接到云服務,或者,可以位于應用本地。
連接的數據源:最常見的數據源是可用于檢索和存儲信息的表。 可以利用到數據源的連接,采用 Microsoft Excel 工作簿、使用 Microsoft Lists 創建的列表、SharePoint 庫、SQL 表和許多其他格式來讀取和寫入數據,并將這些數據存儲在 OneDrive for Business、DropBox 和 SQL Server 等云服務中。
除表以外的其他數據源包括電子郵件、日歷、Twitter 和通知,但本文并不介紹其他這些類型的數據源。
操作演示
創建應用,創建表,設計表:
使用“顯示”窗體容器,關聯對應數據源:
數據管理,可以添加修改數據:
2)表單模型搭建
表單模型是指在應用程序或系統中用于收集和處理用戶輸入數據的結構化數據模型。它定義了表單中的字段、驗證規則、默認值和其他相關屬性。
表單模型的構成要素,表單模型的構成要素包括以下幾個方面:
- 表單字段(Form Fields):表單字段是表單模型的核心要素,用于收集用戶輸入的數據。每個表單字段代表一個特定的數據項,例如文本輸入框、下拉列表、單選按鈕、復選框等。每個字段具有唯一的標識符和相關的屬性,如字段類型、驗證規則、默認值等。
- 標簽(Labels):標簽用于描述表單字段的用途或含義,提供給用戶一個可見的文本標識,幫助他們理解字段的目的。標簽通常顯示在字段前面或上方。
- 輸入控件(Input Controls):輸入控件是用戶與表單字段進行交互的界面元素。根據字段的類型,輸入控件可以是文本輸入框、下拉列表、單選按鈕組、復選框等。輸入控件允許用戶輸入、選擇或修改數據。
- 默認值(Default Values):某些字段可以設置默認值,作為初始值或推薦值。默認值可以預先填充字段,減少用戶的輸入工作量,同時提供了一些合理的選項。
- 驗證規則(Validation Rules):驗證規則定義了對用戶輸入數據進行驗證的規則和條件。驗證規則用于確保輸入數據的合法性和完整性,可以包括必填字段、數據格式、范圍限制、唯一性檢查等。驗證規則可以提供及時的錯誤提示,幫助用戶糾正錯誤并提供有效的數據。
- 提交按鈕(Submit Button):提交按鈕用于觸發用戶完成表單輸入并提交數據的操作。當用戶點擊提交按鈕時,表單數據將被發送到后端進行處理或存儲。
- 取消按鈕(Cancel Button):取消按鈕允許用戶放棄當前的表單輸入操作,返回上一步或退出表單頁面。
這些要素共同構成了表單模型,提供了一種結構化和用戶友好的方式來收集和處理用戶輸入的數據。通過合理設計表單字段、標簽、輸入控件、驗證規則等要素,可以提升用戶體驗、確保數據的準確性和完整性,以及滿足特定應用場景的需求。
① 騰訊微搭
組件列表詳見:https://cloud.tencent.com/document/product/1301/59110
② Microsoft Power Apps
組件列表詳見:https://learn.microsoft.com/zh-cn/power-apps/maker/canvas-apps/add-configure-controls
五、結論
本文詳細描述了APaaS產品中數據模型(表單設計器),本質來看:表單模型是一種用于收集和驗證用戶輸入數據的模型。它定義了數據輸入的結構、字段和驗證規則。表單模型提供用戶界面,用于展示字段和接收用戶的數據輸入。
通過表單模型,可以收集用戶提交的數據,并進行驗證以確保數據的合法性和完整性。而數據模型負責數據的結構化存儲和查詢,使用數據表格容器是數據模型在可視化界面的實現方式,另外還提供數據源的管理。
扮演的角色
數據表格容器用于數據的存儲和展示,而表單模型用于數據的輸入和驗證。
數據表格容器提供了數據的結構化存儲和查詢功能,而表單模型提供了一種用戶友好的方式來收集和驗證用戶輸入的數據。
- 數據輸入:表單模型提供用戶界面,用戶可以填寫表單字段并提交數據。
- 數據驗證:表單模型可以驗證用戶輸入的數據,確保數據的合法性和完整性。
- 數據存儲:通過數據表格容器,將表單中的數據存儲到適當的表格中,以便后續的數據處理和查詢。
- 數據展示:數據表格容器可以用于展示存儲的數據,將數據以表格的形式呈現給用戶或其他系統進行查看和分析。
本文由@高姿態 原創發布于人人都是產品經理,未經許可,禁止轉載。
題圖來自 Unsplash,基于CC0協議。
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
太牛了,講清了數據模型的來龍去脈,小白都能看懂,給作者一鍵三連~