SQL表名,應該用表對應資源對象的複數形式仍是單數形式

問題
SQL表名,應該用表對應資源對象的複數形式仍是單數形式。例如一個用戶表,表名是用user仍是users更合適呢?
 

精華回答
 
用單數形式更佳,理由以下:
 
一、概念直觀。
你有一個袋子,裏面有好多個蘋果,你會說這是個蘋果袋。但不管裏面有0,1,百萬個蘋果,它依然是個袋子。表也是如此,代表須要描述清楚,表裏麪包含的對象,而非有多少個數據。
 
二、便利性
單數形式更簡單。有一些單詞,它的複數形式多是很是規的,或者就沒有複數形式,可是單數不同,單數形式則沒那麼多講究。有些單詞的複數,可能會想到你頭大,可能得好好google纔出來
 
三、優雅
特別是一些master-detail形式的資源名稱,統一用單數,讀起來更方便,對齊更整齊,從順序上更有邏輯性。
對比下
單數:
  • Order
  • OrderDetail
複數:
  • OrderDetails
  • Orders
 
四、簡單樸素
設想下,無論是表名,主鍵,關係,實例Classes,你均可以統一用單數,全部看上去那麼統一,也不用費心地各類複數單數中轉換你的思惟
  • Customer
  • Customer.CustomerID
  • CustomerAddress
  • public Class Customer {...}
  • SELECT FROM Customer WHERE CustomerID = 100
一旦你肯定,要處理的這個對象,名字定爲Customer,那麼全部和數據庫相關的交互、編程就都將使用這個單詞
 
五、全球化
假設你身處一個全球化的團隊,成員中有些人,母語不是英文,對他們來講,辨認、書寫一個單詞的複數形式,要更困難,會給他們帶來麻煩,也給團隊合做帶來麻煩。
 
六、爲何不
這能夠節省你的拼寫時間,硬盤空間,甚至讓你的鍵盤更「長壽」
  • SELECT Customer.CustomerName FROM Customer WHERE Customer.CustomerID = 100
  • SELECT Customers.CustomerName FROM Customers WHERE Customers.CustomerID = 100
看這兩條語句,你能夠省下3個字母,3個字節,3次鍵盤敲擊
 
最後,我還認爲,你應該給一些容易衝突的名字加個前綴,例如User,要把對應的前綴加上,也就是
User > LoginUser, AppUser, SystemUser, CMSUser,...
 
stackoverflow連接:
http://stackoverflow.com/questions/338156/table-naming-dilemma-singular-vs-plural-names
 
 
專欄介紹:
很是喜歡stackoverflow,總能在上面找到疑難雜症的解決辦法。偶然發現該網站有一個熱度榜單。因而精選了熱度較高的一些問題,而後按照本身的理解,把你們的討論梳理出來。所以,這些文章不是真正的翻譯,而是按照本身的理解作了一些增刪、潤色,但願能把上面的討論,更精簡有效地分享給你們。
如需轉載,請註明原文地址
相關文章
相關標籤/搜索