在我的Rails应用程序中,我想将Places列字段的地理范围存储在数据库中。例如,纽约的边界表示为多边形:一个数组数组。

我已经声明要对多边形进行序列化的模型,但是不确定是否应该像这样存储它们。这些序列化多边形的大小很容易超过100,000个字符,而MySQL在标准TEXT字段中只能存储大约65000 characters

现在我知道MySQL也有一个LONGTEXT字段。但是我真的希望我的应用与数据库无关。 Rails如何独自处理呢?它将自动切换到LONGTEXT字段吗?我开始使用PostgreSQL时该怎么办?

最佳答案

在这一点上,我建议您问自己-这些数据是否需要存储,还是应该以这种格式存储在数据库中?

我提出两种可能的解决方案:

  • 将多边形存储在文件系统中,并从数据库中引用它们。如此大的数据项在数据库中几乎没有用-将它们作为文本进行查询几乎没有意义。文件系统擅长存储文件-使用它。
  • 如果确实需要数据库中的这些多边形,请将其存储为规范化数据。 有一个称为多边形的表,以及另一个称为点的表,对多边形进行反序列化并以反映打算使用数据库的方式进行存储。

  • 希望这会有所帮助。

    07-24 18:58
    查看更多