我需要连续存储多个图像。所以,我可以遵循两个方法。
1。第一种方式
一种方法是1NF形式(应该避免,因为我在书中读过)。
我将使用列网址创建一个表 Feed ,并存储以逗号分隔的多个网址
ID 网址
1 a.jpg,b.jpg,c.jpg
2 xyz.jpg,image.jpg
要检索图像,我会使用explode()
$photos = explode(' , ', $url);
2。第二种方式
第二种方法是规范化表并创建一个单独的图像表,其中包含与表Feed的多对一关系
Feed表:
ID
1
2
图片表:
fid 网址
1 a.jpg
1 b.jpg
1 c.jpg
我想知道为什么我们应该避免第一种方法?或者只对小项目使用第一种方法?
答案 0 :(得分:2)
您的图像名称数量可变吗? “数组”应该实现为另一个表中的行。和你的#2一样。
你显然已经完成了你的功课并阅读了论点;我不会在这里重复他们。相反,我建议用两个学习练习来解决这个问题。
答案 1 :(得分:0)
如果我们在谈论图像标准化不会带给你任何东西。您永远不会按图像的文件名进行过滤,排序或聚合。
所以,你最初的想法接近正确(第一种方式)。但我建议使用json_ *函数来存储值。
$urls = json_encode( ['x.jpg', 'y.jpg', 'z.jpg'] );
// INSERT INTO mytable (..., urls) VALUES (..., $urls);
// SELECT urls FROM mytable;
$photos = json_decode($data['urls']);