【问题标题】:What length should I give to a MYSQL VARCHAR field that stores a signature in JSON?我应该给以 JSON 格式存储签名的 MYSQL VARCHAR 字段的长度是多少?
【发布时间】:2012-10-25 21:03:10
【问题描述】:

我正在尝试将签名存储在数据库中。我正在使用签名板插件 (signaturePad),它从 canvas 转换为 JSON,现在想将签名存储在 MySQL

我正在使用VARCHAR 字段,但我不确定我应该允许哪个长度。我试了好几次,结果通常是一个 2000 到 3000 个字符之间的字符串。

问题:
我应该在 MYSQL 中使用什么字段长度?我不知道CANVAS=>JSON 转换是如何完成的,所以也许有人可以给我指点一下会发生什么?

谢谢!

【问题讨论】:

标签: mysql json digital-signature varchar


【解决方案1】:

我不会使用VARCHAR,我会使用TEXT。这样做可能会牺牲性能,但不必担心大小限制。

编辑:

另外,VARCHAR 的最大值是VARCHAR(65535)。只是在那里做个笔记..

【讨论】:

  • 如果没有提供签名,我可以将text 设置为空字符串,可以吗?
  • 是的,你可以提交 '' 或 NULL 并且什么都不会破坏
【解决方案2】:

不要使用VARCHAR。使用TEXT

概述于the docs for the signaturePad plugin

【讨论】:

    【解决方案3】:

    使用其中一种 TEXT 数据类型可能会更好。

    TINYTEXT    256 bytes    
    TEXT    65,535 bytes    ~64kb
    MEDIUMTEXT   16,777,215 bytes   ~16MB
    LONGTEXT    4,294,967,295 bytes ~4GB
    

    这还取决于您的 MySQL 版本。

    见:Is a VARCHAR(20000) valid in MySQL?

    【讨论】:

      猜你喜欢
      • 2011-10-06
      • 2013-03-03
      • 2019-02-08
      • 2014-07-30
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 2014-06-15
      • 2015-06-10
      相关资源
      最近更新 更多