資料庫欄位命名
㈠ 資料庫名,表名,欄位名能隨意命名嗎
這位朋友你好,資料庫名如果不是你的編輯,那麼你當然不可以隨意的命名,一定要按照規律性質來進行命名。
㈡ 詳解 Mysql 資料庫對象命名規范、對象設計規范、SQL 使用規范
資料庫對象命名規范
資料庫對象包括表、索引、視圖、圖表、默認值、規則、觸發器、存儲過程和用戶。命名規范要求使用具有意義的英文詞彙,詞彙間以下劃線分隔。命名只允許使用英文字母、數字和下劃線,且以英文字母開頭。應避免使用MySQL保留字,如"backup"、"call"、"group"等。所有資料庫對象應使用小寫字母。
資料庫命名規范
資料庫命名應盡量不超過30個字元,以項目名稱加代表庫含義的簡寫表示。創建資料庫時應添加默認字元集和校對規則子句,推薦使用UTF8或UTF8MB4。命名應保持統一性,使用小寫。
表命名規范
表名通常以"t_"開頭,表示table。命名規則為"t + 模塊簡寫 + 表簡寫",例如教育信息表命名為"t_user_einfo"。臨時表命名規則為"temp_模塊_表_日期",如"temp_user_einfo_20210719"。備份表命名規則為"bak_模塊_表_日期",如"bak_user_einfo_20210719"。同一模塊的表盡可能使用相同的前綴,表名稱應表達含義,並且以小寫字母表示,長度不宜超過30個字元。
欄位命名規范
欄位命名需要表示實際含義的英文單詞或簡寫,單詞間用下劃線分隔,例如"service_ip"、"service_port"。各表間相同意義的欄位必須同名,如"create_time"。應使用小寫,長度不超過30個字元。
索引命名規范
唯一索引使用"uni + 欄位名"命名,例如"uni_uid"。非唯一索引使用"idx + 欄位名",如"idx_uname_mobile"。多個單詞間使用下劃線分隔。索引名應保持在50個字元以內,組合索引的欄位不宜太多。對於多單片語成的列名,應採用縮寫形式,如"test_contact表member_id和friend_id上的組合索引"命名為"idx_mid_fid"。
視圖命名規范
視圖名以"v"開頭,表示view,結構為"v + 視圖內容含義縮寫"。如果視圖僅來源於單個表,則為"v + 表名"。如果視圖由多個表關聯產生,則使用"v + 表名間用下劃線連接"。視圖名長度盡量不超過30個字元,超過則取簡寫。嚴格限制開發人員創建視圖,命名應保持小寫。
存儲過程命名規范
存儲過程名以"sp"開頭,多個單詞間使用下劃線連接,如"sp_add_user"。輸入參數以"i_"開頭,輸出參數以"o_"開頭。命名應保持小寫,長度不超過30個字元。
函數命名規范
函數名以"func"開始,多個單詞間使用下劃線連接,如"func_calculate_total"。函數命名中應體現其功能。函數名長度不超過30個字元,命名應保持小寫。
觸發器命名規范
觸發器以"trig"開頭,描述觸發器所加的表。觸發器名長度盡量不超過30個字元,後綴可表示觸發條件,如"_i"表示插入觸發,"_u"表示更新觸發,"_d"表示刪除觸發。命名應保持小寫。
約束命名規范
唯一約束使用"uk_表名稱_欄位名",例如"uk_user_name"。外鍵約束使用"fk_表名_表名",子表名和父表名間用下劃線分隔。非空約束默認非空且給出默認值。命名應保持小寫。
用戶命名規范
生產使用的用戶命名格式為"code_應用"。只讀用戶命名規則為"read_應用"。命名應保持小寫。
資料庫對象設計規范
存儲引擎選擇:無特殊需求時,必須使用innodb存儲引擎。字元集選擇:無特殊要求時,推薦使用utf8或utf8mb4。表設計規范:減少不同應用間的關聯,避免使用外鍵,確保組件獨立性。表設計應針對每個組件的業務進行,表必須有主鍵,欄位應表示單一含義,避免重復列,避免復雜數據類型,確保join欄位數據類型一致。文本存儲:使用獨立的表,通過主鍵關聯。定期刪除過期數據,通過分表解決,如使用2/8法則。單表欄位數限制在50個以內,物理大小控制在16GB,數據行數控制在2000W以內。
欄位設計規范:整型欄位使用UNSIGNED INT,動態長度字元串使用VARCHAR,TEXT類型用於大文本數據,長度超過20000個字元使用TEXT,精確浮點數使用DECIMAL,避免使用BLOB類型。欄位默認非空且提供默認值,自增欄位為整型且為UNSIGNED INT或BIGINT。
索引設計規范:索引創建在區分度較高的列上,選擇性計算方式為:count(distinct c_name)/count(*)。遵循最左前綴原則,避免使用外鍵,Text類型欄位使用前綴索引。單表索引數量控制在5個以內,ORDER BY、GROUP BY、DISTINCT欄位在索引後形成覆蓋索引。聯合索引應按照最左匹配原則,避免索引失效,合理使用聯合索引和前綴索引。
約束設計規范:主鍵為有序且無意義的自增序列,唯一性約束創建唯一約束索引。禁止更新主鍵欄位,避免創建外鍵約束,所有欄位非空,所有欄位有默認值。
SQL使用規范:避免使用SELECT *,使用明確的欄位列表進行查詢。禁止全表掃描,確保查詢具有明確的過濾條件。分頁查詢需帶有排序條件。使用IN/UNION替換OR,避免使用模糊前綴查詢,盡量避免子查詢,使用JOIN操作優化。
㈢ 在SQL資料庫命名規則中,如何區分'e'和'E'
在SQL資料庫中,區分'e'和'E'的關鍵在於欄位的類型。對於數字型欄位,通常會使用科學計數法表示數值,例如1.23e-4或1.23E-4。這里的'e'和'E'都是用來表示科學計數法中的10的指數。然而,字元串型欄位則不同,它們可能包含文本信息,如"123+456",其中的"+"號表示連接符。
僅通過'e'本身是無法區分其代表科學計數法還是其他含義的。因此,理解欄位類型對於正確解析和處理這些字元至關重要。例如,如果欄位是數值類型,那麼'e'或'E'應被視為科學計數法的一部分;如果欄位是字元串類型,那麼'e'可能只是普通文本。
正確理解SQL資料庫中的'e'和'E'的含義,首先需要明確欄位的數據類型。這可以通過查詢資料庫表的元數據信息來實現。例如,可以使用如下SQL語句查詢表欄位類型:
sql
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'your_table_name';
了解了欄位類型後,就可以正確處理'e'和'E'了。在實際應用中,對於數字型欄位,可能需要將其轉換為數值類型進行計算;而對於字元串型欄位,可能需要保留其原始形式進行文本處理。
此外,為了確保數據的一致性和准確性,在編寫SQL查詢和存儲過程時,應當遵循統一的命名規范。這有助於避免因字元含義不清而導致的錯誤。例如,可以使用下劃線或駝峰命名法來增強代碼的可讀性。
總之,正確區分'e'和'E'的關鍵在於理解欄位的數據類型,並據此進行相應的處理。通過查詢資料庫元數據和遵循良好的命名規范,可以有效避免混淆和錯誤。
㈣ MySQL資料庫命名規范
MySQL資料庫命名規范主要包括以下方面:
- 未明確提及具體命名規則:在提供的參考信息中,主要強調了MySQL資料庫設計的一系列原則和標准,以確保數據的一致性、性能和可維護性,但並未明確給出具體的命名規范。
不過,基於常見的資料庫命名實踐,以下是一些建議的MySQL資料庫命名規范:
資料庫名稱:
- 簡潔明了:資料庫名稱應簡潔明了,能夠准確反映資料庫的內容或用途。
- 小寫字母和下劃線:為了保持一致性,建議使用小寫字母和下劃線組合來命名資料庫。
表名稱:
- 復數形式:表名稱通常使用復數形式,以表示表中存儲的是多條記錄。
- 前綴區分:可以根據不同的模塊或業務線為表名稱添加前綴,以便於區分和管理。
- 小寫字母和下劃線:同樣建議使用小寫字母和下劃線組合來命名表。
欄位名稱:
- 描述性:欄位名稱應具有描述性,能夠准確反映欄位的含義。
- 駝峰命名或下劃線:欄位名稱可以使用駝峰命名法或下劃線命名法,但應在整個項目中保持一致。
- 避免保留字:避免使用MySQL的保留字作為欄位名稱,以防止潛在的沖突。
索引名稱:
- 有意義:索引名稱應具有意義,能夠反映索引的用途或所關聯的欄位。
- 前綴標識:可以為不同類型的索引添加前綴標識。
注意事項:
- 一致性:在整個項目中,應保持命名風格的一致性,以便於團隊成員之間的溝通和協作。
- 可讀性:命名應簡潔明了,易於理解和記憶,避免使用過於復雜或難以理解的名稱。
- 可擴展性:在命名時,應考慮未來的擴展性和可維護性,避免因為命名不當而導致後續開發中的麻煩。