2009-07-23 7 views
3

私はユニコードを呼び出すために異なる長さを使用することを理解していません。私はアドレス、名前、説明などの私のpostgresデータベース内のすべての私の列のtypes.Unicode(255)を使用しています。これは賢明ではないのですか?ポストグルのすべての列タイプにunicode(255)を使用しますか?

+1

私は明確ではないことをお詫び申し上げます。現在のテーブルの外観は次のとおりです。 property_table = schema.Table( 'property'、meta.metadata、 schema.Column( 'id'、types.Unicode(255)、primary_key = True)、 schema.Column schema.Column( 'address'、types.Unicode(255)、nullable = False)、 schema.Column( 'city'、types.Unicode( 'name'、types.Unicode(255)、nullable = False) 25535)、nullable = False)、 schema.Column( 'state'、types.Unicode(255)、nullable = False)、 schema.Column( 'zip'、types.Unicode(255)、nullable = False) ) – teggy

答えて

0

データベースに適切なデータ型を使用する理由はいくつかあります。 Performance(pdf)が最大の問題ですが、他にも理由があります。例えば:彼らは日付データ型(通常はUNIXタイムスタンプ)

  • ない限り

    • 日付が正しく並べ替えあなたは文字列として文字列
    • 「真」として保存されている番号に数学的な演算子を使用することはできませんではないでしょう真実ではないに等しいブールん
  • 4

    あなたは「ユニコード(255)」によって何を意味するかわからない - PostgreSQLのそのようなデータ型が存在しない:

    # create table q (x unicode(255)); 
    ERROR: type "unicode" does not exist 
    LINE 1: create table q (x unicode(255)); 
             ^
    
    は、

    多分あなたはvarchar(255)を意味します。この場合、私に聞かせてください:320文字の説明が必要な場合はどうなりますか?

    私は個人的にTEXTデータ型を使用することをお勧めします。データベースは一般に、文字列が100文字または1000文字の長さであるかどうかは気にしません。

    2

    varchar(n)またはchar(n)データ型ではなく、テキスト型を使用する場合のパフォーマンス上の不利益がないので、ビジネス目的でハード制限を設定する必要がない場合はテキストを使用してください。それでも、長さの制約を持つテキストを使用してください:-)

    関連する問題