Я знаю, что этот вопрос задавался много раз, но мой вопрос касается хранения изображения с несколькими размерами.
Я уже решил, что мои изображения будут храниться в файловой системе. Итак, это проверено!
Каждому главному изображению, загруженному через тип ввода = «файл», будет присвоен уникальный идентификатор, используя единую функцию в php: uniqid ('fc_', true)
Теперь моя дилемма заключается в том, как хранить разные размеры (или дети) основного изображения.
В настоящее время основное изображение содержит запись в базе данных (id, title, description, type, filename), и она хранится в файловой системе. Различные размеры основного изображения напрямую перемещаются в файловую систему (без записи в базе данных), и они называются с использованием uniqid основного изображения + добавленного текста. Так:
Master: fc_345679849.89675849.jpg size (30px) : fc_345679849.89675849_tiny.jpg size (50px) : fc_345679849.89675849_small.jpg size (100px) : fc_345679849.89675849_medium.jpg size (500px) : fc_345679849.89675849_large.jpg
Когда я стал больше смотреть в эту систему и как это делают другие, я стал более сомнительным, если бы это был правильный подход.
Другой подход, о котором я думал, – это тот, который хранит каждое изображение (ссылку на изображение, а не фактическое изображение), включая те, которые имеют разные размеры в базе данных. Все они будут иметь первичный ключ и, если это применимо, ссылку на основное изображение, например:
id, ..., filename, master_imageid _____________________________ 1, ... , 34.jpg, NULL 2, ... , 23.jpg, 1 3, ... , 45.jpg, 1 4, ... , 12.jpg, 1 5, ... , 8.jpg, 1
Таким образом, изображение 1 является мастером, а остальные (разные размеры) – это дети мастера … то есть изображение 2, 3, 4, 5
Итак, система № 1: одна запись для мастера, у детей нет записи db и есть удобный текст для соответствующего имени файла, чтобы связать их с мастером.
Система № 2: одна запись для мастера и одна запись для каждого ребенка. Нет необходимости добавлять удобный текст к имени файла для детей, поскольку столбец master_imageid будет автоматически связывать их с мастером.
Любая мысль о том, что является лучшим решением?
заранее спасибо