如何在不使用多对多/一对多的情况下将列表存储在数据库中?

时间:2012-04-08 07:00:58

标签: database arrays list schema relationship

这是我想要做的,我想在db记录中存储一个值列表,所以它是这样的:

| id |  tags     |
| 1  |  1,3,5    |
| 2  |  121,4,6  |
| 3  |  3,101,2  |

我发现的大部分建议到目前为止建议创建一个单独的连接表来建立多对多关系,但在我的情况下,我不认为它适合创建一个单独的表,因为标签值只是一个数字列表。

我现在能想到的最好的方法是将数据存储为csv字符串,并在检索时对其进行相应的解析,但我仍然试图找到一种方法,我可以将值作为数组获取我从数据库中检索它,如果我可以限制列表中的元素数量更好,有没有更好的方法来做到这一点?

我还没有决定使用哪个数据库,最有可能是postgresql,但如果可以帮助我更好地实现这个,我可以对其他人开放,

1 个答案:

答案 0 :(得分:2)

在PostgreSQL上,您可以使用array type

在MySQL上,您可以使用set type

那取决于你真正需要的是什么。