다른 사람들이 열거 형을 처리하는 방법에 대해 궁금합니다. & nosql? enum 값이나 문자열로 특성을 저장하는 것이 더 좋습니까? 어떤 경우에는 이것이 데이터베이스의 크기 나 성능에 영향을 줍니까? 예를 들어, 프로 스포츠 선수를 생각해 봅시다 ... 그의 스포츠 유형은 축구, 하키, 야구, 농구 등이 될 수 있습니다 ... 문자열 대 열거, 모두 어떻게 생각하니?NoSql : Enums vs Strings
2
A
답변
1
코드에서 열거 형을 사용해야합니다. 강력한 입력은 많은 실수를 방지하고 저장을 위해 문자열이나 숫자로 변환하는 데 도움이됩니다.
문자열에 저장 공간이 훨씬 필요합니다. "Basketball"은 인코딩에 따라 10-20 바이트이며, 4로 저장하면 1 바이트 만 필요합니다. 그러나 이것이 실제로 중요한 경우는 거의 없습니다. 백만 개의 레코드가있는 경우 총 데이터베이스 크기의 차이는 20MB 미만입니다. 문자열은 열거가 변경되면 자동으로 실패하지 않으므로 작업하기가 더 쉽습니다. 따라서 문자열을 사용하십시오.
문자열은로드시 열거 형으로의 변환을 포함하여 대부분의 작업에서 숫자보다 느립니다. 그러나 차이점은 데이터베이스에서 아무것도 검색하는 데 걸리는 시간보다 훨씬 짧은 순서이므로 중요하지 않습니다.
1
String
은 이식성 관점에서 더 좋습니다. 그리고 Enum
은 MSSQL Server
및 기타 많은 인기있는 DBMS에서 지원되는 이 아니며이 아닙니다.
배열에 대한 올바른 입력을 막고 String으로 저장할 수있는 응용 프로그램 수준 논리를 사용할 수 있습니다.
편집 :
내 환경 설정 CakePHP
(I 웹 애플리케이션을 )로 String
로 변경 이동성 문제에 대한 노 더 이상 지원 Enum
.
관련 문제
- 1. (memcached + 관계형 데이터베이스) vs nosql
- 2. 문자열에 대한 Java enums vs 상수
- 3. NoSQL vs Linq to asp.net MVC
- 4. Enums 결합하기
- 5. NHibernate와 Enums
- 6. percona nosql 대 다른 nosql
- 7. getElementsByTagName returns strings
- 8. PHP split strings
- 9. bash script 'here strings'
- 10. Lucene.NET (strings fuzzy matching)
- 11. PersistenceSpecification 및 Enums
- 12. Enums 목록에 매핑 하시겠습니까?
- 13. WCF 버전 관리 Enums
- 14. Entity Framework - WCF - Enums?
- 15. ListView and enums
- 16. C# enums/reflection
- 17. C# enums as int
- 18. NHibernate의 매핑 테이블 Enums
- 19. 자바 enums : 개념적 의심
- 20. Android Java : enums 사용
- 21. iphone xml-rpc utf8 strings
- 22. 정규식 .strings 파일을 파싱하기위한 정규식
- 23. Unescape Python Strings From HTTP
- 24. Visual "strings"Windows 용 도구
- 25. .net Enums blittable types입니까? (마샬링)
- 26. 레일즈 모델과 데이터베이스에서 상수 enums
- 27. C# int, Int32 및 enums
- 28. NoSQL Word 근접
- 29. Nosql many-to-many
- 30. NoSQL DB 및보고
이 기사도 찾았습니다. http://www.objectreference.net/post/enum-to-friendly-string-extension-method.aspx – bbqchickenrobot