2017-04-07 14 views
1

違いは何ですか? text()は十分ですか?テーブルの列にtextまたはlongtextを使用する必要がありますか?

私はちょうどこれを見つけました:$ table-> longText( 'description');

テキストだけで十分な長さのコンテンツが得られるのではないかと思っていました。

+1

である「十分なテキストです?」明らかに、保存するデータによって異なります。さまざまなオプションが用意されているため、ユースケースに合ったものを選択できます。これには「正しい」答えはありません。もしあれば、選択肢はありません。 – ADyson

答えて

2

各タイプは、異なる最大長

VARCHAR(M)、VARBINARY(M)255 バイト、又は255バイト以上

TINYBLOB、TINYTEXT LL < 2^8

を管理しますBLOB、TEXTのL < 2^16

MEDIUMBLOB、MEDIUMTEXT L < 2^24

LONGBLOB、LONGTEXTのL < 2^32

https://dev.mysql.com/doc/refman/5.7/en/string-type-overview.html

+0

私は今チェックしたサイズを理解しています。あなたがCMSを作成していたら、何を優先して使うのですか?ポスト、テキスト、ミディアンテキストの本文を格納するポストのテーブルではどうしますか? –

+0

は最大の長さに依存していますが、一般的には可変の値を含むテキストを使用します(例:フォーム1〜16,777,215バイト)(プレーンテキストを保存する場合) – scaisEdge

+0

プレーンテキストを保存します。テキストの50ページの小さな本の価値は、標準的なテキストでは十分ではありません。私はCMSを構築しており、エンドユーザーがポストまたはページ本文の列に入れたいものを事前に知らないのです –

1

あなたはLaravelで使用されているilluminate/database sources、見れば、テキスト列の最大長を設定する方法があります。

protected static function calculateDoctrineTextLength($type) 
{ 
    switch ($type) { 
     case 'mediumText': 
      return 65535 + 1; 
     case 'longText': 
      return 16777215 + 1; 
     default: 
      return 255 + 1; 
    } 
} 

デフォルトのタイプはそうtextフィールドが255文字になり、テキストである、とlongtextは16777215です。