对postgres中的所有列类型使用unicode(255)?

时间:2009-07-23 06:52:22

标签: database postgresql unicode

我不明白何时使用不同的长度来调用unicode。我一直在我的postgres数据库中的所有列中使用types.Unicode(255),例如地址,名称,描述等。这样做是不明智的吗?

3 个答案:

答案 0 :(得分:4)

不确定你的意思是“unicode(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个字符。

答案 1 :(得分:2)

值得添加到depesz的答案,即使用文本类型而不是varchar(n)或char(n)数据类型不存在性能损失,因此除非您需要为业务目的设置硬限制,否则只需使用文本。即使这样,也要使用长度约束的文本: - )

答案 2 :(得分:0)

在数据库中使用正确的数据类型有很多原因。 Performance(pdf)是最受关注的问题,但也有其他原因。例如:

  • 日期不会正确排序,除非它们是日期数据类型(通常是unix时间戳)
  • 您不能对存储为字符串的数字
  • 使用数学运算符
  • “true”,因为字符串不等于布尔值true