< 上一個課程 | 下一個課程 >

第 2.4 課:使用自動產生序鍵

在上一課,您已設定導覽規則來確定使用者輸入新分類廣告的唯一 ID。 這個程序無益且不切實際,因為您不會希望網站使用者經由反覆猜測來找到唯一 ID。 在這一課,您將設定自動產生序鍵,讓資料庫自動指派唯一的號碼給資料庫的每一筆新的記錄。
執行這項作業的原因和時機

自動產生序鍵是一個很複雜的主題,但簡單地說,如果資料庫有專用來產生索引鍵的表格,資料庫便可以選擇新的索引鍵。 這份表格必須在一個直欄(增量器直欄)中有一份未用索引鍵的清單,在另一個直欄(身分直欄)中有一份從 1 開始的號碼清單。當資料庫需要新的索引鍵時,它會從身分直欄是 1 的列中取出索引鍵,之後,再得出供下次使用的新索引鍵。

如果要設定自動產生序鍵,關於它的運作方式,您必須有若干瞭解。 如果要使用自動產生序鍵,資料庫必須有一份專用於這個用途的表格。 這份表格有兩個直欄:
  • 增量器直欄儲存可用的索引鍵。當資料庫需要新的唯一索引鍵時,它會從這個直欄中擷取一個。
  • 身分直欄是一份號碼清單,其中只有一個 1。這個直欄告訴資料庫從「增量器」直欄中選取哪個索引鍵。身分直欄是產生索引鍵表格的主鍵。

當資料庫需要新的唯一索引鍵時,它會尋找身分直欄值是 1 的列。這列的增量器直欄值存放下一個可用的索引鍵。 資料庫會使用這個索引鍵,且會更新表格,以便下次有新的索引鍵可供使用。

以下是產生索引鍵的表格範例。 這個資料庫下一個可用的索引鍵是什麼? 回答在表格之下。
表 1. 索引鍵產生表
身分直欄 增量器直欄
3 78
4 3
1 65
2 12
這份表格中下一個可用的索引鍵是 65,因為這個索引鍵(在增量器直欄)與身分直欄中的 1 在同一列。

從表格中提取下一個可用的索引鍵之後,下次需要索引鍵時,會更新表格。藉由使用多列的增量器直欄值,資料庫也可以擷取多重索引鍵。

簡言之,如果自動產生序鍵要能夠運作,您只需要用兩個直欄來設定產生索引鍵的表格:作為身分直欄的主鍵直欄,以及用來儲存下一個可用索引鍵的直欄。 這份表格必須用身分直欄值是 1、增量器直欄值是第一個要用的可用索引鍵的記錄來起始設定。 將這個設好之後,您就已準備好,可以開始使用自動產生序鍵。

設定自動產生序鍵

執行這項作業的原因和時機
這個指導教學所提供的範例資料庫有一份名稱為 KEYS 的索引鍵產生表。如上所述,它的兩個直欄將提供每個新記錄的新 ID 號碼。 在這些步驟中,您將設定 create_record 關聯式記錄來從 KEYS 表格中取出它的 ID 號碼。
  1. 在「企業瀏覽器」視圖中,按兩下 new_record.jsp 頁面。
  2. 在「頁面資料」視圖中,按兩下 create_record 關聯式記錄。這時會開啟「配置關聯式記錄」視窗。
  3. 按一下重複使用現有的記錄或記錄清單的 Meta 資料定義使用資料庫中現有的資料來填寫記錄,然後按下一步
  4. 從下拉清單中選取資料庫連線,然後按下一步
  5. 在「配置關聯式記錄」視窗中,右邊是鏈結清單。 按一下自動產生序鍵。這時會開啟「產生索引鍵」視窗。
  6. 選取使用自動產生序鍵
  7. 按一下展開 W5SAMPLE 清單,再按一下 KEYS 表格。
  8. 選取身分直欄欄位中,按一下 KEY_ID
  9. 選取增量器直欄欄位中,按一下 NEXT_KEY

    由於廣告的 ID 只需要一個索引鍵,「一次提取的索引鍵數」設定將維持 1。如果需要多個索引鍵,則這個設定會讓資料庫一次選取所有索引鍵。

    「配置資料物件」視窗如下所示:

    「配置資料物件」視窗。

  10. 按一下關閉,關閉「產生索引鍵」視窗, 再按一下完成,套用變更。現在,每個新記錄都會自動產生 ID 欄位。 接下來,您必須移除 ID 輸入欄位,讓使用者無法輸入任何值。
  11. 按一下 ID: 文字,將游標放在輸入表單表格的最上列中。
  12. 按一下表格 > 刪除 > 刪除列
  13. 儲存頁面。
結果
(選用)如果您要查看產生的索引鍵,您可以刪除 ID 號碼的輸入元件,將它改成連結於 create_record 之 ID 直欄的輸出元件。 之後,自動產生的索引鍵會出現在表單頂端,但使用者無法變更它。

測試完成的指導教學

執行這項作業的原因和時機
準備要發佈 Web 應用程式時,您需要伺服器來管理 Web 應用程式,供使用者能過網際網路來存取。 不過,若要測試網站,您可以利用可用的執行時期來模擬一個做為測試用途的伺服器。如需瞭解如何測試網站, 請參閱第 1.3 課:測試網站

課程回顧

您已完成第 2.4 課。在這一課,您已學到如何設定自動產生序鍵。
< 上一個課程 | 下一個課程 >

意見