Мне нужно хранить несколько изображений подряд. Итак, я могу следовать двум подходам.
1. Первый путь
Один подход — форма 1NF (которой следует избегать, как я читал в книгах).
Я создам таблицу Кормить с URL-адрес столбца и хранить несколько URL-адресов, разделенных запятой
Я бы URL
1 a.jpg, b.jpg, c.jpg
2 xyz.jpg, image.jpg
Чтобы получить изображения, я бы использовал explode ()
$photos = explode(' , ', $url);
2. Второй способ
Второй способ — нормализовать таблицу и создать отдельную таблицу изображений с отношением «многие к одному» с таблицей Feed.
Таблица подачи:
Я бы
1
2
Таблица изображений:
шлагтов URL
1 a.jpg
1 b.jpg
1 c.jpg
Я хочу знать, почему мы должны избегать первого подхода? или это нормально использовать первый подход только для небольших проектов?
У вас есть переменное количество имен изображений? «Массивы» должны быть реализованы в виде строк в другой таблице. Как с твоим №2.
Вы, очевидно, сделали свою домашнюю работу и прочитали аргументы; Я не буду перефразировать их здесь. Вместо этого я предлагаю повернуть вопрос двумя учебными упражнениями.
Если речь идет о нормализации изображений, то ничего вам не принесет. Вы никогда не фильтруете, не сортируете и не агрегируете по именам изображений.
Итак, ваша первоначальная идея близка к правильной (Первый способ). Но я бы посоветовал использовать функции 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']);