我应该使用哪两种方法将标签插入mysql?

时间:2010-05-14 03:27:44

标签: php mysql tags

对于每个广告,我允许用户最多选择5个标签。现在,在我的数据库中,我喜欢它......

Posting_id     TagID
    5            1
    5            2 
    5            3
    6            5
    6            1

但我在想是否应该像...那样......

    Posting_id     TagID
    5              1 2 3 
    6              5 1

然后,第一个选项更容易插入和检索数据。但如果我有100个帖子,每个帖子有3个标签,那就是300行...所以还有更多的行

第二个选项需要使用explode()impode()等,但它更清晰。

我应该选择哪个选项?为什么?谢谢!

编辑:第一种方式更好!

4 个答案:

答案 0 :(得分:3)

使用第一个选项,因为第二个选项使得难以有效地为TagID列编制索引。如果您想查询您的数据以查找存储在TagID列中的特定数值(并且我打赌你会这样做),那么您将从第二个选项中获得较差的性能。

答案 1 :(得分:2)

第一种方式。行很便宜,mysqsl可以处理数百万行的表。另外,以第一种方式执行此操作会将ID保持为整数,这可以使将来使用表更加容易(例如,在进行连接和引用外键时)。

答案 2 :(得分:0)

第一个。您将意识到,当您必须“使用这些标签计算所有主题但不计算其他标题”时。

答案 3 :(得分:0)

第二种方法打破了数据库规范化的第一条规则。