如何在我的数据库中将类别ID格式化为字符串


How to format category IDs as a string in my db

我是PHP/MMySQL的新手。我想尽量减少表的数量,所以我一直在考虑将ID数组(来自用户勾选的复选框)保存为字符串,而不是保存在单独的表中。你用什么将ID列表格式化为字符串,这样我就可以很容易地解析ID,以便将来在我的程序中使用?

您可以使用内爆()并且分解以分别连接值和分离值。您也可以尝试serialize()来存储值。在我给出的链接中有很多例子,所以它们将对您想要的数据格式有所帮助。

这不是个好主意。我认为1:N关系是更好的选择。这提供了更好的性能,并且数据库支持完整性检查。

所以,若你们想,你们可以建立一个逗号分隔的列表,然后使用下面的where语句:

where CONCAT(',', FIELDWITHIDS, ',') like '%,13,%'

以找到引用ID 13的数据集。或者您必须在PHP中使用explode()和内爆()。

逗号分隔的值或php序列化(http://php.net/manual/en/function.serialize.php)

也就是说,你失去了在数据库中进行连接或完整性检查的好处,所以你通常应该避免这样做。