問題
SQL表名,應該用表對應資源對象的複數形式仍是單數形式。例如一個用戶表,表名是用user仍是users更合適呢?
精華回答
用單數形式更佳,理由以下:
一、概念直觀。
你有一個袋子,裏面有好多個蘋果,你會說這是個蘋果袋。但不管裏面有0,1,百萬個蘋果,它依然是個袋子。表也是如此,代表須要描述清楚,表裏麪包含的對象,而非有多少個數據。
二、便利性
單數形式更簡單。有一些單詞,它的複數形式多是很是規的,或者就沒有複數形式,可是單數不同,單數形式則沒那麼多講究。有些單詞的複數,可能會想到你頭大,可能得好好google纔出來
三、優雅
特別是一些master-detail形式的資源名稱,統一用單數,讀起來更方便,對齊更整齊,從順序上更有邏輯性。
對比下
單數:
四、簡單樸素
設想下,無論是表名,主鍵,關係,實例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