

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 實體和資料動作：設定應用程式的資料模型
<a name="data"></a>

**實體**是 App Studio 中的資料表。實體會直接與資料來源中的資料表互動。實體包括描述其中資料的欄位、尋找和傳回資料的查詢，以及將實體欄位連接至資料來源資料欄的映射。

**Topics**
+ [設計資料模型時的最佳實務](data-model-best-practices.md)
+ [在 App Studio 應用程式中建立實體](data-entities-create.md)
+ [在 App Studio 應用程式中設定或編輯實體](data-entities-edit.md)
+ [刪除實體](data-entities-delete.md)
+ [AWS App Studio 中的受管資料實體](managed-data-entities.md)

# 設計資料模型時的最佳實務
<a name="data-model-best-practices"></a>

使用下列最佳實務，在 中建立強大、可擴展且安全的關聯式資料模型， AWS 用於符合您應用程式需求的 App Studio 應用程式，並確保資料基礎設施的長期可靠性和效能。
+ **選擇正確的 AWS 資料服務：**根據您的需求，選擇適當的 AWS 資料服務。例如，對於線上交易處理 (OLTP) 應用程式，您可以考慮資料庫 (DB)，例如 Amazon Aurora，這是支援 MySQL 和 PostgreSQL 等各種資料庫引擎的雲端原生、關聯式和全受管資料庫服務。如需 App Studio 支援的完整 Aurora 版本清單，請參閱 [連線至 Amazon Aurora](connectors-aurora.md)。另一方面，對於線上分析處理 (OLAP) 使用案例，請考慮使用 Amazon Redshift，這是雲端資料倉儲，可讓您針對非常大型的資料集執行複雜的查詢。這些查詢通常需要時間 （許多秒） 才能完成，因此 Amazon Redshift 較不適合需要低延遲資料存取的 OLTP 應用程式。
+ **可擴展性設計：**將未來成長和可擴展性納入考量，規劃您的資料模型。選擇適當的資料服務和資料庫執行個體類型和組態 （例如佈建容量） 時，請考慮預期資料量、存取模式和效能需求等因素。
  + 如需使用 Aurora Serverless 擴展的詳細資訊，請參閱 [Aurora Serverless V2 的效能和擴展](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.setting-capacity.html)。
+ **標準化您的資料：**遵循資料庫標準化的原則，將資料備援降至最低並改善資料完整性。這包括建立適當的資料表、定義主索引鍵和外部索引鍵，以及建立實體之間的關係。在 App Studio 中，從一個實體查詢資料時，您可以透過在查詢上指定子`join`句，從另一個實體擷取相關資料。
+ **實作適當的索引：**識別最重要的查詢和存取模式，並建立適當的索引以最佳化效能。
+ **利用 AWS 資料服務功能：**利用您選擇的 AWS 資料服務所提供的功能，例如自動備份、多可用區域部署和自動軟體更新。
+ **保護您的資料：**實作強大的安全措施，例如 IAM (AWS Identity and Access Management) 政策、建立具有資料表和結構描述限制許可的資料庫使用者，以及強制執行靜態和傳輸中的加密。
+ **監控和最佳化效能：**持續監控資料庫的效能，並視需要進行調整，例如擴展資源、最佳化查詢或調校資料庫組態。
+ **自動化資料庫管理：**利用 Aurora Autoscaling、Aurora 的績效詳情和 AWS Database Migration Service 等 AWS 服務，自動化資料庫管理任務並降低營運開銷。
+ **實作災難復原和備份策略：**確保您擁有定義明確的備份和復原計劃，利用 Aurora 自動化備份、point-in-time復原和跨區域複本組態等功能。
+ **遵循 AWS 最佳實務和文件：**隨時up-to-date掌握所選資料服務的最新 AWS 最佳實務、準則和文件，以確保您的資料模型和實作符合 AWS 建議。

如需每個 AWS 資料服務的詳細指引，請參閱下列主題：
+ [Amazon Aurora 的最佳實務](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.BestPractices.html)
+ [Amazon Aurora MySQL 的最佳實務](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.BestPractices.html)
+ [Amazon Redshift 查詢效能調校](https://docs.aws.amazon.com/redshift/latest/dg/c-optimizing-query-performance.html)
+ [在 Amazon DynamoDB 中查詢和掃描資料的最佳實務](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-query-scan.html)

# 在 App Studio 應用程式中建立實體
<a name="data-entities-create"></a>

在 App Studio 應用程式中建立實體有四種方法。下列清單包含每個方法、其優點，以及使用該方法建立和設定實體之說明的連結。
+ [從現有資料來源建立實體](#data-entities-create-existing-data-source)：從現有的資料來源資料表自動建立實體及其欄位，並將欄位映射至資料來源資料表資料欄。如果您有要在 App Studio 應用程式中使用的現有資料來源，則此選項為佳。
+ [使用 App Studio 受管資料來源建立實體](#data-entities-create-managed-data-source)：建立 App Studio 為您管理的實體和 DynamoDB 資料表。DynamoDB 資料表會在您更新實體時自動更新。使用此選項，您不需要手動建立、管理或連接第三方資料來源，或指定從實體欄位到資料表欄的映射。您應用程式的所有資料建模和組態都是在 App Studio 中完成。如果您不想管理自己的資料來源和 DynamoDB 資料表，且其功能足以用於您的應用程式，則此選項為佳。
+ [建立空白實體](#data-entities-create-empty)：從頭開始完全建立空實體。如果您沒有管理員建立的任何現有資料來源或連接器，而且您想要彈性設計應用程式的資料模型，而不受外部資料來源限制，則此選項是較佳的。您可以在建立之後將實體連線至資料來源。
+ [使用 AI 建立實體](#data-entities-create-with-ai)：根據指定的實體名稱產生實體、欄位、資料動作和範例資料。如果您知道應用程式的資料模型，但想要協助將其翻譯為實體，則此選項是較適合的。

## 從現有資料來源建立實體
<a name="data-entities-create-existing-data-source"></a>

使用資料來源中的資料表自動建立實體及其欄位，並將實體欄位映射至資料表的資料欄。如果您有要在 App Studio 應用程式中使用的現有資料來源，則此選項為佳。

1. 如有必要，請導覽至您的應用程式。

1. 選擇畫布頂端**的資料**索引標籤。

1. 如果您的應用程式中沒有實體，請選擇 **\$1 建立實體**。否則，在左側**實體**功能表中，選擇 **\$1 新增**。

1. 選取**使用現有資料來源中的資料表**。

1. 在**連接器**中，選取包含您要用來建立實體之資料表的連接器。

1. 在**資料表**中，選擇您要用來建立實體的資料表。

1. 選取**建立資料動作**核取方塊以建立資料動作。

1. 選擇 **Create entity** (建立實體)。您的實體現在已建立，您可以在左側**實體**面板中看到它。

1. 遵循中的程序來設定您的新實體[在 App Studio 應用程式中設定或編輯實體](data-entities-edit.md)。請注意，由於您的實體是使用現有的資料來源建立的，因此已建立一些屬性或資源，例如欄位、連線的資料來源和欄位映射。此外，如果您在建立期間選取建立資料動作核取方塊，**您的實體將包含資料動作**。

## 使用 App Studio 受管資料來源建立實體
<a name="data-entities-create-managed-data-source"></a>

建立由 App Studio 管理的受管實體和對應的 DynamoDB 資料表。雖然 DynamoDB 資料表存在於關聯 AWS 帳戶中，但在 App Studio 應用程式中對實體進行變更時，DynamoDB 資料表會自動更新。使用此選項，您不需要手動建立、管理或連接第三方資料來源，或指定從實體欄位到資料表欄的映射。如果您不想管理自己的資料來源和 DynamoDB 資料表，且其功能足以用於您的應用程式，則此選項為佳。如需受管實體的詳細資訊，請參閱 [AWS App Studio 中的受管資料實體](managed-data-entities.md)。

您可以在多個應用程式中使用相同的受管實體。如需說明，請參閱[從現有資料來源建立實體](#data-entities-create-existing-data-source)。

1. 如有必要，請導覽至您的應用程式。

1. 選擇畫布頂端**的資料**索引標籤。

1. 如果您的應用程式中沒有實體，請選擇 **\$1 建立實體**。否則，在左側**實體**功能表中，選擇 **\$1 新增**。

1. 選取**建立 App Studio 受管實體**。

1. 在**實體名稱**中，提供實體的名稱。

1. 在**主索引鍵**中，提供實體主索引鍵的名稱。主索引鍵是實體的唯一識別符，建立實體之後就無法變更。

1. 在**主索引鍵資料類型**中，選取實體主索引鍵的資料類型。建立實體之後，無法變更資料類型。

1. 選擇 **Create entity** (建立實體)。您的實體現在已建立，您可以在左側**實體**面板中看到它。

1. 遵循中的程序來設定您的新實體[在 App Studio 應用程式中設定或編輯實體](data-entities-edit.md)。請注意，由於您的實體是使用受管資料建立的，因此已建立一些屬性或資源，例如主索引鍵欄位和連線的資料來源。

## 建立空白實體
<a name="data-entities-create-empty"></a>

從頭開始建立完全空的實體。如果您沒有管理員建立的任何現有資料來源或連接器，則此選項為佳。建立空實體可提供彈性，因為您可以在 App Studio 應用程式中設計實體，而不受外部資料來源的限制。在您設計應用程式的資料模型並相應地設定實體之後，您仍然可以稍後將其連接到外部資料來源。

1. 如有必要，請導覽至您的應用程式。

1. 選擇畫布頂端**的資料**索引標籤。

1. 如果您的應用程式中沒有實體，請選擇 **\$1 建立實體**。否則，在左側**實體**功能表中，選擇 **\$1 新增**。

1. 選取**建立實體**。

1. 選擇 **Create entity** (建立實體)。您的實體現在已建立，您可以在左側**實體**面板中看到它。

1. 遵循中的程序來設定您的新實體[在 App Studio 應用程式中設定或編輯實體](data-entities-edit.md)。

## 使用 AI 建立實體
<a name="data-entities-create-with-ai"></a>

根據指定的實體名稱產生實體、欄位、資料動作和範例資料。如果您知道應用程式的資料模型，但想要協助將其翻譯為實體，則此選項是較適合的。

1. 如有必要，請導覽至您的應用程式。

1. 選擇畫布頂端**的資料**索引標籤。

1. 如果您的應用程式中沒有實體，請選擇 **\$1 建立實體**。否則，在左側**實體**功能表中，選擇 **\$1 新增**。

1. 選取**使用 AI 建立實體**。

1. 在**實體名稱**中，提供實體的名稱。此名稱用於產生您實體的欄位、資料動作和範例資料。

1. 選取**建立資料動作**核取方塊以建立資料動作。

1. 選擇**產生實體**。您的實體現在已建立，您可以在左側**實體**面板中看到它。

1. 遵循中的程序來設定您的新實體[在 App Studio 應用程式中設定或編輯實體](data-entities-edit.md)。請注意，由於您的實體是使用 AI 建立的，因此您的實體將已包含產生的欄位。此外，如果您在建立期間選取建立資料動作核取方塊，**您的實體將包含資料動作**。

# 在 App Studio 應用程式中設定或編輯實體
<a name="data-entities-edit"></a>

使用下列主題在 App Studio 應用程式中設定實體。

**Topics**
+ [編輯實體名稱](data-entities-edit-name.md)
+ [新增、編輯或刪除實體欄位](data-entities-edit-fields.md)
+ [建立、編輯或刪除資料動作](data-entities-edit-data-actions.md)
+ [新增或刪除範例資料](data-entities-edit-sample-data.md)
+ [新增或編輯連線的資料來源和映射欄位](data-entities-edit-connection.md)

# 編輯實體名稱
<a name="data-entities-edit-name"></a>

1. 如有必要，請導覽至您要編輯的實體。

1. 在**組態**索引標籤的**實體名稱**中，更新實體名稱，然後在文字方塊外選擇 以儲存變更。

# 新增、編輯或刪除實體欄位
<a name="data-entities-edit-fields"></a>

**提示**  
您可以按 CTRL\$1Z 復原實體的最新變更。

1. 如有必要，請導覽至您要編輯的實體。

1. 在**組態**索引標籤的**欄位中**，您可以檢視實體欄位的資料表。實體欄位具有下列資料欄：
   + **顯示名稱：**顯示名稱類似於資料表標頭或表單欄位，應用程式使用者可檢視。它可以包含空格和特殊字元，但實體內必須是唯一的。
   + **系統名稱：**系統名稱是程式碼中用來參考欄位的唯一識別符。映射至 Amazon Redshift 資料表中的資料欄時，必須符合 Amazon Redshift 資料表資料欄名稱。
   + **資料類型：**將儲存在此欄位內的資料類型，例如 `Integer`、 `Boolean`或 `String`。

1. 若要新增欄位：

   1. 若要使用 AI 根據實體名稱和連線的資料來源產生欄位，請選擇**產生更多欄位**。

   1. 若要新增單一欄位，請選擇 **\$1 新增欄位**。

1. 若要編輯欄位：

   1. 若要編輯顯示名稱，請在**顯示名稱**文字方塊中輸入所需的值。如果 欄位的系統名稱尚未編輯，則會將其更新為顯示名稱的新值。

   1. 若要編輯系統名稱，請在**系統名稱**文字方塊中輸入所需的值。

   1. 若要編輯資料類型，請選擇**資料類型**下拉式功能表，然後從清單中選擇所需的類型。

   1. 若要編輯欄位的屬性，請選擇欄位的齒輪圖示。下列清單詳細說明 欄位屬性：
      + **必要**：如果您的資料來源需要 欄位，請啟用此選項。
      + **主索引鍵**：如果 欄位對應至資料來源中的主索引鍵，請啟用此選項。
      + **唯一**：如果此欄位的值必須是唯一的，請啟用此選項。
      + **使用資料來源預設值**：如果資料來源提供 欄位的值，例如使用自動遞增或事件時間戳記，請啟用此選項。
      + **資料類型選項**：某些資料類型的欄位可以設定資料類型選項，例如最小值或最大值。

1. 若要刪除欄位，請選擇您要刪除之欄位的垃圾桶圖示。

# 建立、編輯或刪除資料動作
<a name="data-entities-edit-data-actions"></a>

資料動作用於應用程式，以對實體的資料執行動作，例如擷取所有記錄，或依 ID 擷取記錄。資料動作可用來尋找和傳回符合指定條件的資料，以便在資料表或詳細資訊檢視等元件中檢視。

**Contents**
+ [建立資料動作](#data-entities-data-action-add)
+ [編輯或設定資料動作](#data-entities-data-action-edit)
+ [資料動作條件運算子和範例](#data-entities-data-action-operators)
  + [資料庫的條件運算子支援](#data-entities-data-action-operators-support)
  + [資料動作條件範例](#data-entities-data-action-operators-examples)
+ [刪除資料動作](#data-entities-data-action-delete)

## 建立資料動作
<a name="data-entities-data-action-add"></a>

**提示**  
您可以按 CTRL\$1Z 復原實體的最新變更。

1. 如有必要，請導覽至您要為其建立資料動作的實體。

1. 選擇**資料動作**索引標籤。

1. 有兩種方法來建立資料動作：
   + （建議） 若要使用 AI 來產生資料動作，根據您的實體名稱、欄位和連線的資料來源，請選擇**產生資料動作**。將產生下列動作：

     1. `getAll`：從實體擷取所有記錄。當您需要顯示記錄清單或一次對多個記錄執行操作時，此動作很有用。

     1. `getByID`：根據實體的唯一識別符 (ID 或主索引鍵） 擷取單一記錄。當您需要對特定記錄顯示或執行操作時，此動作非常有用。
   + 若要新增單一資料動作，請選擇 **\$1 新增資料動作**。

1. 若要檢視或設定新的資料動作，請參閱下一節：[編輯或設定資料動作](#data-entities-data-action-edit)。

## 編輯或設定資料動作
<a name="data-entities-data-action-edit"></a>

1. 如有必要，請導覽至您要為其建立資料動作的實體。

1. 選擇**資料動作**索引標籤。

1. 在**欄位中**，設定要由查詢傳回的欄位。根據預設，會選取實體中的所有設定欄位。

   您也可以執行下列步驟，將**聯結**新增至資料動作：

   1. 選擇 ** \$1 新增加入**以開啟對話方塊。

   1. 在**相關實體**中，選取您要加入目前實體的實體。

   1. 在**別名**中，選擇性地輸入相關實體的暫時別名名稱。

   1. 在**聯結類型**中，選取所需的聯結類型。

   1. 從每個實體中選取欄位，以定義聯結子句。

   1. 選擇**新增**以建立聯結。

   建立後，聯結會顯示在**聯結**區段中，讓要**傳回的欄位**下拉式清單中提供其他欄位。您可以新增多個聯結，包括跨實體的鏈結聯結。您也可以依加入的實體中的欄位進行篩選和排序。

   若要刪除聯結，請選擇其旁邊的垃圾桶圖示。這將從該聯結中移除任何欄位，並使用這些欄位破壞任何相依聯結或限制條件。

1. 在**條件**中，新增、編輯或移除篩選查詢輸出的規則。您可以將規則組織成群組，並使用 `AND`或 `OR`陳述式將多個規則鏈結在一起。如需您可以使用之運算子的詳細資訊，請參閱 [資料動作條件運算子和範例](#data-entities-data-action-operators)。

1. 在**排序**中，選擇屬性並選擇遞增或遞減順序，以設定查詢結果的排序方式。您可以選擇排序規則旁的垃圾桶圖示，以移除排序組態。

1. 在**轉換結果**中，您可以輸入自訂 JavaScript，在結果顯示或傳送至自動化之前修改或格式化結果。

1. 在**輸出預覽**中，根據設定的欄位、篩選條件、排序和 JavaScript 檢視查詢輸出的預覽資料表。

## 資料動作條件運算子和範例
<a name="data-entities-data-action-operators"></a>

您可以使用條件運算子來比較設定的表達式值與實體資料欄，以傳回資料庫物件的子集。您可以使用的運算子取決於資料欄的資料類型，以及實體連線的資料庫類型，例如 Amazon Redshift、Amazon Aurora 或 Amazon DynamoDB。

下列條件運算子可與所有資料庫服務搭配使用：
+ `=` 和 `!=`：適用於所有資料類型 （主索引鍵資料欄除外）。
+ `<=`、`<`、 `>=`和 `>=`：僅適用於數值欄。
+ `IS NULL` 和 `IS NOT NULL`：用於比對具有 null 或空白值的資料欄。Null 值在每個資料庫中的解譯方式通常不同，但在 App Studio 中，`NULL`運算子會比對並傳回連線資料庫資料表中具有 Null 值的記錄。

下列條件運算子只能在連線至支援它們的資料庫服務的實體中使用：
+ `LIKE` 和 `NOT LIKE`(Redshift、Aurora)：用於在連線的資料庫中執行模式型查詢。`LIKE` 運算子提供搜尋功能的彈性，因為它會尋找並傳回符合指定模式的記錄。您可以使用符合模式內任何字元或字元序列的萬用字元來定義模式。每個資料庫管理系統都有一組唯一的萬用字元，但最熱門的兩個是`%`代表任意數量的字元 （包括 0)`_`，以及代表單一字元。
+ `Contains` 和 `Not Contains`(DynamoDB)：用於執行區分大小寫的搜尋，以判斷欄值內是否找到指定的文字。
+ `Starts With` 和 `Not Starts With`(DynamoDB)：用於執行區分大小寫的搜尋，以判斷指定的文字是否在資料欄值的開頭找到。

### 資料庫的條件運算子支援
<a name="data-entities-data-action-operators-support"></a>

下表顯示每個可連線至 App Studio 的資料庫支援哪些資料動作條件運算子。


|  | =, \$1=, <, >, <=, >= | LIKE、NIKE | 包含、不包含 | 從 開始，從 開始 | IS NULL、IS NOT NULL | 
| --- | --- | --- | --- | --- | --- | 
|  **DynamoDB**  |  是  |  否  |  是  |  是  |  是  | 
|  **Aurora**  |  是  |  是  |  否  |  否  |  是  | 
|  **Redshift**  |  是  |  是  |  否  |  否  |  是  | 

### 資料動作條件範例
<a name="data-entities-data-action-operators-examples"></a>

請考慮下列資料庫資料表，其中包含具有 `name`、 `city`和 `hireDate` 欄位的多個項目。


| name | 城市 | hireDate | 
| --- | --- | --- | 
|  亞當  |  西雅圖  |  2025-03-01  | 
|  Adrienne  |  波士頓  |  2025-03-05  | 
|  Bob  |  阿布奎基  |  2025-03-06  | 
|  Carlos  |  芝加哥  |  2025-03-10  | 
|  Caroline  |  NULL  |  2025-03-12  | 
|  Rita  |  邁阿密  |  2025-03-15  | 

現在，請考慮在 App Studio 中建立資料動作，以針對符合指定條件的項目傳回 `name` 欄位。下列清單包含條件範例，以及資料表針對每個項目傳回的值。

**注意**  
這些範例已格式化為 SQL 範例，可能不會如在 App Studio 中所示，而是用來說明運算子的行為。
+ `WHERE name LIKE 'Adam'`：傳回 `Adam`。
+ `WHERE name LIKE 'A%'`：傳回 `Adam`和 `Adrienne`。
+ `WHERE name NOT LIKE 'B_B'`：傳回 `Adam`、`Adrienne`、`Caroline`、 `Carlos`和 `Rita`。
+ `WHERE contains(name, 'ita')`：傳回 `Rita`。
+ `WHERE begins_with(name, 'Car')`：傳回 `Carlos`和 `Caroline`。
+ `WHERE city IS NULL`：傳回 `Caroline`。
+ `WHERE hireDate < "2025-03-06"`：傳回 `Adam`和 `Adrienne`。
+ `WHERE hireDate >= DateTime.now().toISODate()`：請注意， `DateTime.now().toISODate()`會傳回目前的日期。在目前日期為 2025-03-10 的情況下，表達式會傳回 `Carlos`、 `Caroline`和 `Rita`。

**提示**  
如需在表達式中比較日期和時間的詳細資訊，請參閱 [日期和時間](expressions.md#expressions-date-time)。

## 刪除資料動作
<a name="data-entities-data-action-delete"></a>

使用下列程序從 App Studio 實體刪除資料動作。

1. 如有必要，請導覽至您要刪除資料動作的實體。

1. 選擇**資料動作**索引標籤。

1. 針對您要刪除的每個資料動作，選擇**編輯**旁的下拉式選單，然後選擇**刪除**。

1. 在對話方塊中選擇**確認**。

# 新增或刪除範例資料
<a name="data-entities-edit-sample-data"></a>

您可以將範例資料新增至 App Studio 應用程式中的實體。由於應用程式在發佈之前不會與外部服務通訊，因此範例資料可用於在預覽環境中測試您的應用程式和實體。

1. 如有必要，請導覽至您要編輯的實體。

1. 選擇**範例資料**索引標籤。

1. 若要產生範例資料，請選擇**產生更多範例資料**。

1. 若要刪除範例資料，請選取您要刪除之資料的核取方塊，然後按 Delete 或 Backspace 鍵。選擇**儲存**以儲存變更。

# 新增或編輯連線的資料來源和映射欄位
<a name="data-entities-edit-connection"></a>

**提示**  
您可以按 CTRL\$1Z 復原實體的最新變更。

1. 如有必要，請導覽至您要編輯的實體。

1. 選擇**連線**索引標籤，以檢視或管理實體與資料來源資料表之間的連線，該資料表會在您的應用程式發佈時存放資料。連接資料來源資料表後，您可以將實體欄位映射至資料表的資料欄。

1. 在**連接器**中，選擇包含所需資料來源資料表連線的連接器。如需連接器的詳細資訊，請參閱 [使用連接器將 App Studio 連接至其他 服務](connectors.md)。

1. 在**資料表**中，選擇您要用作實體資料來源的資料表。

1. 資料表顯示實體的欄位，以及其對應的資料來源資料欄。選擇**自動映射**以自動映射您的實體欄位與資料來源資料欄。您也可以選擇每個實體欄位下拉式清單中的資料來源欄，在資料表中手動對應欄位。

# 刪除實體
<a name="data-entities-delete"></a>

使用下列程序從 App Studio 應用程式刪除實體。

**注意**  
從 App Studio 應用程式刪除實體並不會刪除連接的資料來源資料表，包括受管實體的對應 DynamoDB 資料表。資料來源資料表將保留在相關聯的 AWS 帳戶中，並且需要視需要從對應的服務中刪除。

**刪除實體**

1. 如有必要，請導覽至您的應用程式。

1. 選擇**資料**索引標籤。

1. 在左側**實體**選單中，選擇您要刪除之實體旁的省略符號選單，然後選擇**刪除**。

1. 檢閱對話方塊中的資訊，輸入 **confirm** 並選擇**刪除**以刪除實體。

# AWS App Studio 中的受管資料實體
<a name="managed-data-entities"></a>

一般而言，您會在 App Studio 中設定連線至外部資料庫資料表的實體，而且您必須使用連線資料庫資料表中的資料欄來建立和對應每個實體欄位。當您變更資料模型時，必須更新外部資料庫資料表和實體，並且必須重新映射變更的欄位。雖然此方法具有彈性並可使用不同類型的資料來源，但需要更預先的規劃和持續的維護。

*受管實體*是 App Studio 為您管理整個資料儲存和組態程序的一種實體。當您建立受管實體時，會在相關聯的 AWS 帳戶中建立對應的 DynamoDB 資料表。這可確保內部安全且透明的資料管理 AWS。使用受管實體時，您可以在 App Studio 中設定實體的結構描述，對應的 DynamoDB 資料表也會自動更新。

## 在多個應用程式中使用受管實體
<a name="managed-data-entities-other-applications"></a>

在 App Studio 應用程式中建立受管實體後，該實體就可以在其他 App Studio 應用程式中使用。這有助於透過提供要維護的單一基礎資源，為具有相同資料模型和結構描述的應用程式設定資料儲存。

在多個應用程式中使用受管實體時，必須使用建立受管實體的原始應用程式，對對應的 DynamoDB 資料表進行所有結構描述更新。對其他應用程式中的實體所做的任何結構描述變更都不會更新對應的 DynamoDB 資料表。

## 受管實體限制
<a name="managed-data-entities-limitations"></a>

**主金鑰更新限制**：您無法在實體建立後變更其主金鑰名稱或類型，因為這是 DynamoDB 中的破壞性變更，並會導致現有資料遺失。

**重新命名資料**欄：重新命名 DynamoDB 中的資料欄時，您實際上會建立新的資料欄，而原始資料欄會保留原始資料。原始資料不會自動複製到新資料欄或從原始資料欄刪除。您可以重新命名稱為*系統名稱*的受管實體欄位，但您將無法存取原始資料欄及其資料。重新命名顯示名稱沒有限制。

**變更資料類型**：雖然 DynamoDB 允許彈性在建立資料表後修改資料欄資料類型，但此類變更可能會嚴重影響現有資料，以及查詢邏輯和準確性。資料類型變更需要轉換所有現有資料以符合新格式，這對大型的作用中資料表來說非常複雜。此外，資料動作可能會傳回非預期的結果，直到資料遷移完成為止。您可以切換欄位的資料類型，但現有的資料不會遷移至新的資料類型。

**排序資料欄**：DynamoDB 可透過排序索引鍵啟用排序資料擷取。排序索引鍵必須與分割區索引鍵一起定義為複合主索引鍵的一部分。限制包括強制性排序索引鍵、限制在一個分割區內的排序，以及沒有跨分割區的全域排序。需要謹慎建立排序索引鍵的資料模型，才能避免熱分割區。我們不支援排序預覽里程碑。

**聯結**：DynamoDB 不支援聯結。資料表會依設計取消標準化，以避免昂貴的聯結操作。若要one-to-many關係的模型，子資料表包含參考父資料表主索引鍵的 屬性。多資料表資料查詢涉及從父資料表查詢項目以擷取詳細資訊。在預覽里程碑中，我們不支援受管實體的原生加入。作為解決方法，我們將引進自動化步驟，以執行 2 個實體的資料合併。這與單一層級查詢非常類似。我們不支援排序預覽里程碑。

**Env Stage**：我們將允許發佈測試，但在兩個環境中使用相同的受管存放區