在mysql中存储数组的最佳方法是什么?

时间:2015-03-09 07:39:09

标签: mysql arrays

我有一个表用户 每个用户都有收藏列表。 用户可以更改,删除或添加到收藏夹

2 个答案:

答案 0 :(得分:1)

规范化表通常比存储序列化结果更好,即使后者很有吸引力。

为了规范化数据,请创建一个新的表“收藏夹”。该表应具有:

  • 具有唯一ID(id)的字段 - 这应该是主键和自动增量。
  • 一个字段用户ID,其中包含收藏夹用户的ID(为此示例,我将其称为user_id) - 此字段应为索引。
  • 标识收藏夹值的字段。我认为在你的情况下,这可能是一个URL(我称之为值)。

代码:

CREATE TABLE favourites
(
    `id` int(10) AUTO_INCREMENT,
    `user_id` int(10),
    `value` varchar(255),

    PRIMARY KEY (`id`),
    INDEX `user_id` (`user_id`)
);

答案 1 :(得分:0)

最好的方法是将数组存储在新的tablejoin用户身上。

或者,您可以serialize()数组并将其作为var_char存储给每个用户。但我不推荐它。然后你必须unserialize才能添加,删除等...