【问题标题】:how to store list in a database, without using many-to-many/one-to-many?如何在不使用多对多/一对多的情况下将列表存储在数据库中?
【发布时间】:2012-04-08 07:00:58
【问题描述】:

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

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

到目前为止,我发现的大多数建议都建议创建一个单独的连接表来建立多对多关系,但就我而言,我认为创建一个单独的表不合适,因为标签值只是一个数字列表。

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

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

【问题讨论】:

  • 您使用的是哪个数据库?
  • 每当我不得不做你描述的事情时(我不时这样做),我都因为不使用子表而感到难过。然后,我将它们添加为逗号分隔值的字符串。
  • @dash1e,我还没有决定使用哪个数据库,但很可能,我将使用 postgre
  • @Uwe Keim,如果我找不到更好的方法,我也会这样做,:)
  • 1,2,3,4 真的是来自“标签”表的 id 吗?

标签: database arrays list schema relationship


【解决方案1】:

在 PostgreSQL 上,您可以使用 array type

在 MySQL 上,您可以使用 set type

那就看你真正需要什么了。

【讨论】:

  • 太棒了,以前不知道,我想我得看看 ORM 以外的东西......谢谢!
猜你喜欢
  • 2015-08-05
  • 2022-07-26
  • 1970-01-01
  • 1970-01-01
  • 2020-04-05
  • 1970-01-01
  • 2012-05-06
  • 2013-12-14
  • 2012-09-06
相关资源
最近更新 更多