Navicat 部落格

SQL 中命名慣例的快速指南 - 第 3 部分 2023 年 4 月 6 日 ,由 Robert Gravelle 撰寫

預存程序、函式和檢視

歡迎來到關於 SQL 命名慣例的第 3 部分也是最後一部分。在第 1 部分中,我們介紹了命名資料表的規則, 第 2 部分則講述了欄名稱的慣例。而本文將提供命名其他資料庫物件(例如預存程序、函式和檢視)的一些準則。

預存程序

預存程序是一組執行某些已定義動作的陳述式。通常,它們都會包含常用的陳述式。預存程序類似於程式設計中的函式,它們可以接受參數,並在調用時執行作業。

一般格式

大多數 DBA 喜歡為他們的預存程序加一個前置語以作識別,然後是預存程序的動作,最後是代表它將影響的一個或多個物件的名稱:

[前置詞]_[動作]_[物件]

你可以使用預存程序的動作包括:

  • Insert
  • Delete
  • Update
  • Select
  • Get
  • Validate

選擇前置詞

預存程序使用的最明顯前置詞是「sp_」。話雖如此,實際上至少有一個合理理由令你避免使用它,因為 SQL Server 已經將它用作 master 資料庫中預存程序的標準命名慣例。如果不指定物件所在的資料庫,SQL Server會先搜尋 master 資料庫以查看物件是否存在,然後再搜尋 user 資料庫。即使你的資料庫不是在 SQL Server,你也應該盡量避免將「sp_」用作命名慣例,以防日後你轉用 SQL Server。

因此,請考慮使用像「usp_」這樣的前置詞。

將所有部分組合起

以下是幾個命名良好的預存程序範例,你可以將其作為制定命名慣例的參考:

  • usp_insert_person
  • usp_delete_person
  • usp_update_person
  • usp_select_person
  • usp_get_person
  • usp_validate_person

使用者定義函式

使用者定義函式與內建資料庫函式類似,它只接受輸入參數,並有一組執行動作和傳回結果的 SQL 陳述式,結果可以是單一個值或一個資料表。

使用者定義函式的命名慣例是具有「fn_」前置語,後面是其動作。因此,它的語法應該與預存程序的語法非常相似:

[前置詞]_[動作]_[物件]

傳回 true 或 false 的函式可以遵循使用「is」或「are」作為動作(動詞)的規則。

函式名稱的一些例子:

  • fn_count_string_instances
  • fn_get_customer_balance
  • fn_is_inventory_in_stock
  • fn_get_column_type

檢視

檢視是一種「虛擬資料表」,是由查詢定義其內容。檢視可以使用聯結將來自兩個或多個資料表的資料組合起來,也可以只包含一個資料子集。這使它們可以方便地摘取或隱藏複雜的查詢。

檢視的命名慣例應具有「v_」或「vw_」前置詞,後面是名稱空間、結果。因此,語法應該是:

[前置詞]_[結果]

以下有一些例子:

  • vw_actor_full_name
  • vw_sales_by_store
  • v_staff_list
  • v_sales_by_product_category

關於 SQL 中預存程序、函式和檢視命名慣例的結語

在這個由三部分組成的系列中,我們探索了一些常用的命名慣例,並研究如何以最佳方式制定自己的命名慣例。系列的第 1 部分介紹了資料表名稱,而第 2 部分重點介紹了欄名稱。最後,第 3 部分介紹了其他資料庫物件(程序、函式和檢視)的命名慣例。

請記住,你無需將規則用於所有資料庫物件。你可以將命名慣例規則只用於資料表名稱和欄名稱。這實際上全由是你決定,因為使用命名慣例不是強制的,但仍然是有其好處。

Navicat 文章
頻道記錄
分享
部落格封存檔