我应该使用数组还是将单独的值存储在单独的列中?

时间:2018-12-17 08:37:33

标签: sql arrays postgresql database-normalization

具体地说,我正在构建一个基于文本的RPG应用程序,但问题是:使用数组和分别存储值之间有什么区别。

通常,如果您想获得第10个怪兽,您会说select 10,但存储数字10是个问题。 我应该将数字存储在数组中,以便当它们select 10选择数组中的第十个元素时,还是将数字存储在另一个表中,以便当它们select 10时,检查数字为10的列以及所有者ID =选择者的ID。

1 个答案:

答案 0 :(得分:0)

这是一个非常笼统的问题。

什么时候使用数组是个好主意?

  • 如果您否则将以很多列结尾。

  • 如果您永远不需要在WHEREJOIN条件下使用数组元素。

  • 如果您永远不需要修改数组元素,只需将数组作为一个整体即可。

通常,数组是个坏主意,因为它们违反了第一个范式。

如果您需要在WHERE条件下有效地使用数组元素,或者想修改单个数组成员,那么苦难就开始了。

明智地使用数组可能是一件好事,但是如果您仔细阅读这里提出的问题,就会发现很多遭受滥用数组或JSON等复合数据类型的数据模型困扰的人。