只是好奇其他人如何處理枚舉& nosql?將屬性存儲爲枚舉值或字符串會更好嗎?這在某些情況下會影響數據庫的大小或性能嗎?例如,想一想,我們可以說,職業運動員......他的運動類型可以是足球,曲棍球,棒球,籃球等等......弦與枚舉,你們都覺得怎麼樣?NoSql:枚舉vs字符串
2
A
回答
1
您應該在代碼中使用枚舉 - 強類型有助於避免很多錯誤 - 並將它們轉換爲字符串或數字進行存儲。
字符串確實需要更多的存儲空間 - 「籃球」是10-20個字節,取決於編碼,如果將它存儲爲4,則只需要1個字節。但是,實際上這很重要 - 如果您有一百萬條記錄,它在數據庫總大小上的差異仍然小於20MB。如果枚舉更改,字符串更容易處理,不太可能失敗,所以使用字符串。
對於大多數操作,字符串也比數字慢,包括轉換爲加載枚舉。然而,這個差別比從數據庫中檢索任何東西所花費的時間少數量級,所以並不重要。
1
String
更好的可移植性的角度。而Enum
是而不是支持流行的DBMS的像MSSQL Server
和許多其他。
您可以擁有應用程序級別的邏輯來防止針對數組的有效輸入並將其存儲爲字符串。
編輯:
我的喜好改變String
爲CakePHP
(在那裏我做網頁應用)便攜性的擔憂不再視爲支持Enum
。
相關問題
- 1. 枚舉VS字符串作爲函數
- 2. 字符串枚舉
- 3. NSStringEncoding - 枚舉到字符串枚舉
- 4. 多個枚舉字符串
- 5. 枚舉字符串匹配
- 6. 鑄造字符串枚舉
- 7. C++ Bitflaged枚舉字符串
- 8. 枚舉爲字符串
- 9. 枚舉到字符串C++
- 10. 字符串到枚舉C++
- 11. 從字符串枚舉
- 12. 如何將字符串項目放在一個枚舉枚舉的枚舉映射的字符串?
- 13. Rails枚舉符號與字符串
- 14. T-SQL枚舉數字或字符串
- 15. 從字符串獲取枚舉字段
- 16. 枚舉TypeScript字符串文字
- 17. 打字稿,枚舉和字符串
- 18. 枚舉VS靜態類(正常和字符串值)
- 19. 枚舉如何返回枚舉對象中枚舉的字符串內容
- 20. 替換字符串與枚舉枚舉生成自動protobuf的
- 21. Java的枚舉:一個內有多個字符串枚舉
- 22. 字符串轉換爲枚舉的枚舉名
- 23. 搜索在枚舉一個字符串,並返回枚舉
- 24. 通過枚舉名字符串獲取枚舉值
- 25. 枚舉VS查找表VS枚舉反射VS State模式
- 26. 枚舉vs強類型枚舉
- 27. 字符串到枚舉模板錯誤
- 28. 映射枚舉的字符串休眠
- 29. 在字符串的枚舉中搜索
- 30. 字符串構建枚舉檢查
發現此文章以及: http://www.objectreference.net/post/enum-to-friendly-string-extension-method.aspx – bbqchickenrobot 2011-02-18 21:21:56