Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我应该使用哪两种方法将标签插入mysql?_Php_Mysql_Tags - Fatal编程技术网

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

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_

对于每个广告,我允许用户选择多达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_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保持为整数,这可以使以后处理表更加容易(例如,在执行连接和引用外键时)。

第一种方法。你会意识到,当你不得不“计算所有带有这些标签的主题,但不包括其他标签的主题”时,第一个。您会意识到,当您必须“使用这些标记计算所有主题,但不使用其他标记计算所有主题”时,第二种方法打破了数据库规范化的第一条规则

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

是的,我没看到。第一种方法是计算一个标签的标签数量,这要容易得多。是的,我没看到。第一种方法是,计算一个标签的标签数量会容易得多。