只是好奇其他人如何处理枚举& nosql?将属性存储为枚举值或字符串会更好吗?这在某些情况下会影响数据库的大小或性能吗?例如,想一想,我们可以说,职业运动员......他的运动类型可以是足球,曲棍球,棒球,篮球等等......弦与枚举,你们都觉得怎么样?NoSql:枚举vs字符串
2
A
回答
1
您应该在代码中使用枚举 - 强类型有助于避免很多错误 - 并将它们转换为字符串或数字进行存储。
字符串确实需要更多的存储空间 - “篮球”是10-20个字节,取决于编码,如果将它存储为4,则只需要1个字节。但是,实际上这很重要 - 如果您有一百万条记录,它在数据库总大小上的差异仍然小于20MB。如果枚举更改,字符串更容易处理,不太可能失败,所以使用字符串。
对于大多数操作,字符串也比数字慢,包括转换为加载枚举。然而,这个差别比从数据库中检索任何东西所花费的时间少数量级,所以并不重要。
1
String
更好的可移植性的角度。而Enum
是而不是支持流行的DBMS的像MSSQL Server
和许多其他。
您可以拥有应用程序级别的逻辑来防止针对数组的有效输入并将其存储为字符串。
编辑:
我的喜好改变String
为CakePHP
(在那里我做网页应用)便携性的担忧不再视为支持Enum
。
相关问题
- 1. 字符串枚举
- 2. 多个枚举字符串
- 3. 字符串到枚举C++
- 4. C++ Bitflaged枚举字符串
- 5. 枚举到字符串C++
- 6. 枚举字符串匹配
- 7. 如何将字符串项目放在一个枚举枚举的枚举映射的字符串?
- 8. Rails枚举符号与字符串
- 9. T-SQL枚举数字或字符串
- 10. 打字稿,枚举和字符串
- 11. 通过枚举名字符串获取枚举值
- 12. Java的枚举:一个内有多个字符串枚举
- 13. 字符串转换为枚举的枚举名
- 14. 搜索在枚举一个字符串,并返回枚举
- 15. 枚举VS查找表VS枚举反射VS State模式
- 16. 解析字符串枚举类型
- 17. EL枚举字符串处理
- 18. PyQt允许枚举值和字符串
- 19. Java MyBatis枚举字符串值
- 20. 字符串转换枚举在C#中
- 21. 缺失值或枚举空字符串
- 22. 在字符串类中枚举
- 23. 转换整数枚举字符串
- 24. 枚举成员上的字符串化
- 25. Java枚举与字符串常量
- 26. 所有枚举项到字符串(C#)
- 27. 解析字符串作为枚举
- 28. 从字符串映射枚举
- 29. 如字符串使用枚举点网
- 30. ASP.NET中的枚举和字符串值
发现此文章以及: http://www.objectreference.net/post/enum-to-friendly-string-extension-method.aspx – bbqchickenrobot 2011-02-18 21:21:56