Php 我应该使用哪两种方法将标签插入mysql?
对于每个广告,我允许用户选择多达5个标签。现在,在我的数据库中,我有它像Php 我应该使用哪两种方法将标签插入mysql?,php,mysql,tags,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 但我在想如果我能让它像 Posting_
Posting_id TagID
5 1
5 2
5 3
6 5
6 1
Posting_id TagID
5 1 2 3
6 5 1
但我在想如果我能让它像
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()等,但它要干净得多
我应该做什么选择?为什么?谢谢
编辑:第一种方法更好 使用第一个选项,因为第二个选项很难有效地索引
TagID
列。如果您想查询存储在TagID
列中的特定数值的数据(我打赌您会这样做),那么第二个选项的性能会很差。使用第一个选项,因为第二个选项很难对TagID
列进行有效索引。如果您想要查询存储在TagID
列中的特定数值的数据(我打赌您会这样做),那么第二个选项的性能会很差。第一种方法。行很便宜,mysqsl可以处理数百万行的表。而且,第一种方法使ID保持为整数,这可以使以后处理表更加容易(例如,在执行联接和引用外键时)。第一种方法。行很便宜,mysqsl可以处理数百万行的表。而且,第一种方法使ID保持为整数,这可以使以后处理表更加容易(例如,在执行连接和引用外键时)。第一种方法。你会意识到,当你不得不“计算所有带有这些标签的主题,但不包括其他标签的主题”时,第一个。您会意识到,当您必须“使用这些标记计算所有主题,但不使用其他标记计算所有主题”时,第二种方法打破了数据库规范化的第一条规则 第二种方法打破了数据库规范化的第一条规则 是的,我没看到。第一种方法是计算一个标签的标签数量,这要容易得多。是的,我没看到。第一种方法是,计算一个标签的标签数量会容易得多。