복붙노트

[RUBY-ON-RAILS] 레일의 캐릭터와 텍스트 사이의 차이점?

RUBY-ON-RAILS

레일의 캐릭터와 텍스트 사이의 차이점?

나는 레일을 사용하여 새 웹 응용 프로그램을 만들고 있어요, 그리고 궁금 해서요, 캐릭터와 텍스트 사이의 차이점은 무엇입니까? 그리고 때마다 사용되어야 하는가?

해결법

  1. ==============================

    1.차이는 기호가 쿼리 언어에서 각각의 컬럼 형으로 변환하는 방법에 의존하고있다.

    차이는 기호가 쿼리 언어에서 각각의 컬럼 형으로 변환하는 방법에 의존하고있다.

    :string |                   VARCHAR                | :limit => 1 to 255 (default = 255)  
    :text   | TINYTEXT, TEXT, MEDIUMTEXT, or LONGTEXT2 | :limit => 1 to 4294967296 (default = 65536)
    

    참고:

    때마다 사용되어야 하는가?

    엄지 손가락의 일반적으로 사용 : 같은 설명과 같은 이상 예상 입력, 코멘트 내용 등을 텍스트 : 짧은 텍스트 입력 (사용자 이름, 이메일, 비밀번호, 제목 등) 사용을위한 문자열

  2. ==============================

    2.당신이 포스트 그레스를 사용하여 텍스트를 사용하는 경우는 크기 제한이 없다면 어디든지 당신이 할 수있는, VARCHAR 대 텍스트의 성능 저하가 없기 때문에

    당신이 포스트 그레스를 사용하여 텍스트를 사용하는 경우는 크기 제한이 없다면 어디든지 당신이 할 수있는, VARCHAR 대 텍스트의 성능 저하가 없기 때문에

    PostgreSQL의 설명서

  3. ==============================

    3.텍스트를 "텍스트"로 변환하면서 문자열, 데이터베이스에 "대 Varchar"로 변환합니다. 포함 된 VARCHAR가 훨씬 적은 항목을 포함 할 수 있습니다, 텍스트는 (거의) 모든 길이 될 수 있습니다.

    텍스트를 "텍스트"로 변환하면서 문자열, 데이터베이스에 "대 Varchar"로 변환합니다. 포함 된 VARCHAR가 훨씬 적은 항목을 포함 할 수 있습니다, 텍스트는 (거의) 모든 길이 될 수 있습니다.

    좋은 참조와 심층 분석을 위해 확인 http://www.pythian.com/news/7129/text-vs-varchar/

    편집 : 일부 데이터베이스 엔진은 한 번에 VARCHAR로드하지만, 테이블의 저장 텍스트 (및 BLOB) 외부 수 있습니다. 당신이 VARCHAR를 사용하는 경우보다 이름에 대한 텍스트를 사용할 때 SELECT 이름은 제품의 양이 많이 느려질 수 있습니다. 그리고 레일 이후, 기본 부하에 의해 SELECT에 기록 * FROM ... 당신의 텍스트 열이로드됩니다. (조기 최적화는 ...)하지만 이것은 아마, 당신이나 내 응용 프로그램에서 실제 문제가되지 않을 것입니다. 그러나 텍스트를 알고 항상 "무료"아니라는 것을 알고하는 것이 좋다.

  4. ==============================

    4.으로는 그것은 또한 당신이 비계 경우 생성 될 뷰에 영향을 미칠 것입니다 위뿐만 아니라 DB의 데이터 유형을 설명했다. 문자열은 text_field 텍스트가 text_area를 생성합니다 생성합니다

    으로는 그것은 또한 당신이 비계 경우 생성 될 뷰에 영향을 미칠 것입니다 위뿐만 아니라 DB의 데이터 유형을 설명했다. 문자열은 text_field 텍스트가 text_area를 생성합니다 생성합니다

  5. ==============================

    5.이 변수 큰 경우 문자열 크기가 고정 된 작은 텍스트 경우. 텍스트 문자열보다 훨씬 더 큰 있기 때문에 중요의 일종이다. 그것은 더 많은 킬로바이트가 포함되어 있습니다.

    이 변수 큰 경우 문자열 크기가 고정 된 작은 텍스트 경우. 텍스트 문자열보다 훨씬 더 큰 있기 때문에 중요의 일종이다. 그것은 더 많은 킬로바이트가 포함되어 있습니다.

    그래서 작은 필드 항상 문자열 (VARCHAR)를 사용합니다. 필드 좋아합니다. (A 기사 나 게시물의) FIRST_NAME, 로그인, 이메일, 제목 와 텍스트의 예 : 게시물 또는 문서의 내용 / 본체. 단락 등을위한 필드

    문자열 크기 1-255 (기본값 = 255)

    텍스트 크기 1 4294967296 (기본값 = 65536) 2

  6. ==============================

    6.짧은 필드, 이름처럼, 주소, 전화 번호, 회사에 대한 문자열을 사용

    짧은 필드, 이름처럼, 주소, 전화 번호, 회사에 대한 문자열을 사용

    큰 내용, 의견, 내용, 단락에 대한 텍스트를 사용합니다.

    더 한 줄보다 그것의 무언가, 나는 일반적으로 텍스트 갈 경우 짧은 2-6 단어의 경우 내 일반적인 규칙은, 내가 문자열을 이동합니다.

    공식 규칙은 문자열 255입니다. 당신의 문자열이 255 자한다면, 텍스트를 이동합니다.

  7. ==============================

    7.허용 대답은 굉장, 제대로 텍스트 대 문자열 사이의 차이를 설명합니다 (데이터베이스에 대부분 제한 크기는하지만, 몇 가지 다른 개는있다),하지만 난 그 대답은 그것을 통해 저를 얻었다 작은 문제를 지적하고 싶었 완전히 나를 위해 그것을하지 않았다.

    허용 대답은 굉장, 제대로 텍스트 대 문자열 사이의 차이를 설명합니다 (데이터베이스에 대부분 제한 크기는하지만, 몇 가지 다른 개는있다),하지만 난 그 대답은 그것을 통해 저를 얻었다 작은 문제를 지적하고 싶었 완전히 나를 위해 그것을하지 않았다.

    최대 크기 : 제한 => 1 4294967296로, 내가 갈 -1이 최대 크기에서 필요에 정확히 넣어 작동하지 않았다. 나는 큰 JSON의 모양을 저장하고있어 그들은 미친 거대한 때로는 수 있습니다.

    여기에 MySQL은 불평하지 않는 값을 가진 자리에 더 큰 값 내 이동합니다.

    한계의 끝에서 주 5 대신 6

    class ChangeUserSyncRecordDetailsToText < ActiveRecord::Migration[5.1]
      def up
        change_column :user_sync_records, :details, :text, :limit => 4294967295
      end
    
      def down
        change_column :user_sync_records, :details, :string, :limit => 1000
      end
    end
    
  8. ==============================

    8.Oracle을 사용하는 경우 ... STRING은 CLOB로, VARCHAR (255) 열 및 텍스트로 작성됩니다.

    Oracle을 사용하는 경우 ... STRING은 CLOB로, VARCHAR (255) 열 및 텍스트로 작성됩니다.

    NATIVE_DATABASE_TYPES = {
        primary_key: "NUMBER(38) NOT NULL PRIMARY KEY",
        string: { name: "VARCHAR2", limit: 255 },
        text: { name: "CLOB" },
        ntext: { name: "NCLOB" },
        integer: { name: "NUMBER", limit: 38 },
        float: { name: "BINARY_FLOAT" },
        decimal: { name: "DECIMAL" },
        datetime: { name: "TIMESTAMP" },
        timestamp: { name: "TIMESTAMP" },
        timestamptz: { name: "TIMESTAMP WITH TIME ZONE" },
        timestampltz: { name: "TIMESTAMP WITH LOCAL TIME ZONE" },
        time: { name: "TIMESTAMP" },
        date: { name: "DATE" },
        binary: { name: "BLOB" },
        boolean: { name: "NUMBER", limit: 1 },
        raw: { name: "RAW", limit: 2000 },
        bigint: { name: "NUMBER", limit: 19 }
    }
    

    https://github.com/rsim/oracle-enhanced/blob/master/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb

  9. ==============================

    9.속성이 양식을 사용 문자열에 f.text_field 일치하는 경우,이 f.text_area 사용 텍스트와 일치하는 경우.

    속성이 양식을 사용 문자열에 f.text_field 일치하는 경우,이 f.text_area 사용 텍스트와 일치하는 경우.

  10. from https://stackoverflow.com/questions/3354330/difference-between-string-and-text-in-rails by cc-by-sa and MIT license