在MySQL中,我們可以使用VARCHAR數據類型存儲圖片路徑。
CREATE TABLE `image` ( `id` int(11) NOT NULL AUTO_INCREMENT, `path` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
在插入數據時,我們可以使用INSERT INTO語句插入圖片路徑。
INSERT INTO `image`(`path`) VALUES('/path/to/image.jpg');
在查詢數據時,我們可以使用SELECT語句查詢圖片路徑。
SELECT `path` FROM `image`;
當需要存儲多張圖片路徑時,可以使用一對多關系,將圖片路徑與其他主表關聯起來。
CREATE TABLE `product` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL DEFAULT '', `description` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `product_image` ( `id` int(11) NOT NULL AUTO_INCREMENT, `product_id` int(11) NOT NULL, `image_path` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `product_id` (`product_id`), CONSTRAINT `product_image_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
插入數據時,我們需要先插入主表數據,然后插入圖片路徑并關聯相應的主表。
INSERT INTO `product`(`name`, `description`) VALUES('Product A', 'Product A Description'); SET @product_id = LAST_INSERT_ID(); INSERT INTO `product_image`(`product_id`, `image_path`) VALUES(@product_id, '/path/to/image1.jpg'); INSERT INTO `product_image`(`product_id`, `image_path`) VALUES(@product_id, '/path/to/image2.jpg');
查詢數據時,我們可以使用INNER JOIN語句將主表與圖片路徑表聯合查詢。
SELECT `product`.`name`, `product`.`description`, `product_image`.`image_path` FROM `product` INNER JOIN `product_image` ON `product`.`id` = `product_image`.`product_id`;