資料表

資料表定義描述應用程式使用及存取資料庫資料表或檢視時所需的中繼資料。

定義包含下列主要明細:
  • 應用程式中的資料表描述。

  • 資料表中定義的欄位列表,以及它們與其他資料表一起建立的所有外來索引鍵條件約束。

  • 資料表的主索引鍵及其產生方式。

  • 資料表保存的是管理資料、主檔資料,還是交易資料。

  • 資料表是否隨產品擁有的系統資料列一起發行。

  • 資料表在轉換處理中的角色。

  • 資料表內容的升級方式。

  • 以及其他

下列各區段將進一步探討與定義資料表相關的概念與指導方針。

系統資料表

隨基準產品擁有之資料列一起發行的資料表,稱為系統資料表。這些資料表包含擁有者 (OWNER_​FLG) 欄位,可擷取每個資料列的擁有者。

如需資料列記錄所有權的命名慣例與標準相關詳細資訊,請參考系統資料

資料表定義記錄上的升級設定可控制系統升級至新版次時,資料表中的資料列會發生什麼情況。最常見的設定可讓客戶擁有的資料列與基準產品所擁有的資料列合併。其他設定可能讓資料表的內容保持原狀 (亦即,升級不會影響資料列),或以基準產品資料列完全重新整理資料表的內容。

特定系統所擁有資料表中的某些欄位會明確標示為允許自訂。這表示允許實作變更基準擁有記錄的這些特定欄位。升級至新版本的產品時,會維護實作對其中一個類型的欄位值變更。

指定的資料表角色

部分資料表是設計來支援下列應用程式角色:
  • 索引鍵資料表
    • 索引鍵資料表只保存資料表主索引鍵的副本,且僅適用於具有系統產生之索引鍵的資料表。

    • 具有系統產生之索引鍵的資料表,會在自己的「資料表」定義記錄中參考其索引鍵資料表。

    • 即使相關實體已封存,索引鍵資料表中的記錄仍會保留在系統中,防止將相同的索引鍵配置給新記錄。保留索引鍵可讓系統維持仍可能存在之任何已封存實體參考的完整性。

  • 語言資料表
    • 為了支援多語言實作,呈現給使用者的所有標籤和描述都會保留在指定的語言資料表中,其中每個啟用的語言都有一個資料列。

    • 本產品以多種語言資料表中提供的英文內容發行。系統會在各個啟用語言的這些資料表中加入一個額外的資料列,以及該語言的翻譯內容。如需詳細資訊,請參考支援不同語言

    • 與區分語言欄位相關聯的資料表,會在自己的「資料表」定義記錄中參考其對應的語言資料表。

  • 特性資料表
    • 系統中的許多實體支援一或多個特性資料表,用來擷取實體所提供屬性尚未支援的其他物件欄位。

    • 特性資料表是專為擷取僅適用於其特定實體的特性所設計。資料表的定義記錄會參考特性資料表的關聯實體。

    • 如需詳細資訊,請參考設定特性類型與值

  • 實體日誌資料表
    • 系統中的許多實體支援在指定的日誌資料表中擷取生命週期和其他重要業務事件。

    • 日誌資料表會以應用程式訊息的形式擷取事件明細,然後將訊息的所有參數儲存在下階日誌參數資料表中。所有日誌資料表與日誌參數資料表都依循預先定義的結構,使其能夠一致且有效率地實作。

    • 通常日誌資料表不會參與轉換處理。

資料表條件約束

資料表之間的外來索引鍵關係不是在資料庫層級強制執行,而是在應用程式層級執行,這讓應用程式在資料處理和參考完整性方面更具彈性。

資料表的定義記錄中可以定義下列條件約束類型:
  • 主索引鍵是一個欄位或一組欄位,代表資料表中所儲存之記錄的唯一識別碼。

  • 邏輯索引鍵代表替代的記錄唯一識別碼,以主索引鍵以外的另一組欄位為依據。

  • 外來索引鍵代表一個欄位或一組欄位,指定與應用程式中其他資料表的識別和非識別關係。外來索引鍵條件約束會參考其他資料表的主索引鍵條件約束。

  • 條件式外來索引鍵代表資料表之間的罕見關係,其中的單一欄位 (或一組欄位) 可能將應用程式中其他資料表的多個主索引鍵條件約束參考為外來索引鍵。

當此資料表中的資料列被刪除時,系統會利用此資料表的外來索引鍵條件約束資訊執行參考完整性驗證。勾選資料表定義記錄上的啟用參考完整性欄位可停用這些驗證。

資料表索引

索引中繼資料會顯示基準產品為指定資料表所提供的索引。此外,資料表索引資訊也可以定義為雲端服務支援的一部分,以應用在特定使用案例中產生自訂資料表。如需詳細資訊,請參考下方的「產生自訂資料表」區段。

主索引鍵類型

資料表的主索引鍵可為下列幾種類型:

  • 使用者定義表示使用者會指定新增記錄時的索引鍵。此類型的索引鍵通常用於組態與管理資料表。

  • 系統產生表示程式會產生新增記錄時的隨機數值索引鍵。
    • 此類型的資料表通常與索引鍵資料表相關聯。如需詳細資訊,請參考指定的資料表角色區段。

    • 基於效能考量,系統產生的索引鍵可能是完全隨機,或是部分繼承自上階資料表的索引鍵。如需詳細資訊,請參考系統產生的索引鍵

  • 順序表示每當記錄新增至資料表時,序號就會遞增。順序中的下一個編號會決定索引鍵值。

  • 資料庫原生循序索引鍵表示使用資料庫順序物件指派唯一的數字。

  • 其他表示其他某些業務規則會配置資料表的主索引鍵,或主索引鍵是由多個部分組成。

系統產生的索引鍵

一般而言,會使用隨機產生的數值系統索引鍵嘗試在各種可能的 ID 間平均分配記錄。使用多個執行緒的批次程式通常會使用 ID 範圍來分割執行緒,平均分配的索引鍵將可協助在這些執行緒間分攤工作。

如果使用系統產生索引鍵的資料表是另一個資料表的下階,下階資料表的索引鍵則可繼承其上階資料表索引鍵的部分隨機編號。下階記錄的索引鍵繼承進一步擴大了效能優勢。考量分割時,DBA 的建議是根據主索引鍵來配置分割區資料,讓不同的批次執行緒處理不同的分割區,以降低作用區塊爭用。理想的情況下,批次執行緒數目會是分割區數目的精確倍數。此設計對於插入下階資料 (例如批次計費建立) 的批次程式也有所助益,尤其是當下階資料表以相同的方式分割時。上階通常是批次處理的驅動因素。如果是多執行緒,則每個執行緒會處理指定 ID 範圍內的一組上階記錄,並將所有下階記錄插入相同的 ID 範圍中。

雖然具有系統產生索引鍵的大多數實體是使用完全隨機索引鍵或部分繼承單一上階的索引鍵,但您還是能將實體設計成實行更特定的索引鍵產生規則。

使用索引鍵繼承時,下階資料表的資料表定義會定義下列資訊:
  • 上階記錄主索引鍵中要用來作為下階記錄索引鍵值前綴的有效位數上限數目。

  • 索引鍵繼承來源的上階索引鍵欄位名稱。此資訊僅供顯示與文件用途,而且只在實體實行的繼承規則以此方式說明時提供。通常下階索引鍵值會繼承自單一上階索引鍵,但在某些情況下,繼承規則可能會比較複雜。例如,相同下階資料表中不同類型的記錄可能從不同的上階索引鍵欄位繼承其索引鍵。在這種情況下,可能會列出多個上階欄位名稱來描述各種繼承選項。規則太複雜時,則可能不會在資料表定義記錄中提供此資訊。

轉換選項

轉換處理可管理將主檔與交易舊有資料 (已載入暫存結構中) 複製到生產結構前,對其驗證並指派新系統產生索引鍵的處理。如需詳細資訊,請參考瞭解轉換處理

此工具將資料表分類為下列幾個角色:
  • 管理資料表。這些資料表只存在於生產結構中。生產資料表的檢視 (而非資料表) 則存在於暫存結構中。在暫存結構中驗證資料時,需要這些檢視才能強制執行外來索引鍵參考

  • 保留其主索引鍵的可轉換資料表。這些資料表支援資料轉換,且其主索引鍵值維持不變。

  • 需要指派新系統產生索引鍵的可轉換資料表。這些資料表支援資料轉換,轉換期間會由系統重新指派其主索引鍵。

  • 不可轉換資料表。為記錄指派新的系統產生索引鍵,然後以新索引鍵取代記錄可能擁有的所有外來索引鍵參考,是一項既複雜且不是所有資料表都會支援的處理。

資料表定義記錄中的資料轉換角色設定可控制轉換處理是否使用/如何使用資料表。

日期/時間組態

擷取日期/時間資訊的欄位可設計為以當地法定時間或當地標準時間儲存資料。當地法定時間是在資料庫中輸入時擷取,並以擷取的時間顯示。它同時還假設日期/時間資訊參考安裝選項中定義的時區。如需詳細資訊,請參考標準時間與法定時間

產生自訂資料表

針對雲端客戶和特定使用案例,產品可支援為自訂資料表定義資料表中繼資料,以及在資料庫中為該中繼資料產生的相關 DDL。對於這些自訂資料表,資料表中繼資料顯示的「產生狀態」可識別資料表在此支援功能生命週期中的位置。此外,資料表入口的索引頁籤可用來定義 DDL 中包含為此功能一部分的自訂索引。如果您是雲端客戶且想要更多資訊,請參考「雲端服務實作指南」。