문자열에는 제한이 없지만 모든 일반 관계형 데이터베이스에서는 열이 최대 길이를 선언해야합니다. 이것은 오히려 중요한 불일치로 보입니다. 전형적인 ORM이이를 어떻게 처리하는지 궁금합니다.데이터베이스 ORM에서 문자열을 매핑해야하는 것은 무엇입니까?
'text'열 유형을 사용하면 이론적으로 훨씬 더 많은 문자열과 같은 저장 공간을 제공하지만 텍스트 열은 쿼리 할 수 없거나 적어도 효율적이지는 않습니다 (인덱싱되지 않음).
나는 아마도 NHibernate와 같은 것을 사용하려고 생각하고있다. 그러나 ORM 요구는 비교적 간단하다. 그래서 내가 직접 작성하면 약간의 부 풀림을 줄일 수있다.
"예를 들어 SqlServer는 실제 크기의 데이터 만 저장합니다." - 이론적으로 최대 크기를 MAX_INT와 같거나 여전히 성능 단점이 있다고 선언 할 수 있습니까? – devios1
NVarchar 8000으로 제한됩니다. 그러면 필터링 할 가능성과 같은 몇 가지 특수 기능이있는 BLOB 인 nvarchar (MAX)를 지정해야합니다. 성능상의 단점이 전혀 없다면 100 %를 말할 수는 없지만 그 이유가 무엇인지 모릅니다.반면에 화면이나 보고서에 제대로 표시 할 수 없으므로 8000 자의 사용자 이름을 사용하는 것은 의미가 없습니다. 합리적인 값으로 제한하는 것은 전혀 아프지 않습니다. –