你认为什么是更好的方式去在MySQL数据库中存储的记录内的几个图像的id? 这只是图像的ID将被用于从不同的库获取的图像。
我是否破灭ID用在像1#4#7#9#10#12的纪录还是我只是序列化阵列和存储? 是否有通过使用一个,而不是其他的任何性能优势? 稳定的偏好?
我刚才一直使用内爆和爆炸,从来没有真正赋予它过多考虑。 谢谢。
你认为什么是更好的方式去在MySQL数据库中存储的记录内的几个图像的id? 这只是图像的ID将被用于从不同的库获取的图像。
我是否破灭ID用在像1#4#7#9#10#12的纪录还是我只是序列化阵列和存储? 是否有通过使用一个,而不是其他的任何性能优势? 稳定的偏好?
我刚才一直使用内爆和爆炸,从来没有真正赋予它过多考虑。 谢谢。
我会pefer 序列化或JSON编码。
它更加灵活 ,比如可以让你在将来添加图像标题和其他细节有...
如果你不想(过?)你正常化的表,你真的只想存储ID列表那么我建议使用一个简单的逗号分隔的列表,因为已经MySQL有一些功能,可以直接处理逗号分隔字符串值:
FIND_IN_SET
: http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set
SELECT FIND_IN_SET('b','a,b,c,d'); --> 2
CONCAT_WS
: http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat-ws
SELECT CONCAT_WS(',','First name',NULL,'Last Name'); --> 'First name,Last Name'
当然,你不能做SQL连接,但它仍然是有帮助的。
据我知道有没有这种情况,而是显著差异implode()
是一个快一点,因为它假设数组和serialize()
不知道你是什么传递给它。
基于OP的评论编辑 :
那么所有的图像存储在标题和描述之类的东西一个单独的库表。 但是,是我明白你的意思。
在这种情况下是不是一个好主意,于是几个序列ID添加到一个字段。 你需要的是你的2个表之间的*一对多的关系。 这是代表多值字段中输入正确的方法:
+----------------------+
| USER |
+---------+------+-----+
| user_id | name | ... |
+---------+------+-----+
+----------------------+
| USER_PICTURE |
+---------+------------+
| user_id | picture_id |
+---------+------------+
+--------------------------+
| PICTURE |
+------------+-------+-----+
| picture_id | title | ... |
+------------+-------+-----+
我的朋友,序列化是获取对象的状态的字符串表示。 即使它的工作原理我不认为是你想要的东西的最佳方式。 我宁愿来存储一个JSON对象与IDS。 因为JSON对象是多平台,是一个字符串,是由人,我认为是一个很好的方法易于阅读。