在SQL中使用单独的字段或单个字段作为CSV

时间:2018-04-19 17:19:23

标签: sql postgresql

我需要在结构化数据库(SQL,postgresql)或其他任何地方保存大约500个值。那么存储数据的最佳方式是什么。它是将500个字段还是单个字段作为(CSV)逗号分隔值。

优点和缺点是什么? 什么容易维护。 什么比检索数据更好。

1 个答案:

答案 0 :(得分:1)

以逗号分隔的值几乎不是存储值的正确方法。

传统的SQL方法是结点或关联表,每个字段和每个实体有一行。这会增加行数,但这没关系,因为数据库可以处理大表。但这有几个好处:

  • 可以正确定义外键关系。
  • 可以为对象实现正确的类型。
  • 检查约束更自然地写。
  • 可以构建索引,合并列并提高性能。
  • 查询不需要依赖字符串函数(可能很慢)。

Postgres还支持其他两种方法来处理此类数据,数组和JSON编码。在某些情况下,一个或另一个也可能是合适的。逗号分隔的字符串几乎永远不是正确的选择。