MySQL लोकप्रिय डेटाबेस प्रबंधन प्रणालियों में से एक है। इसका उपयोग अनुप्रयोगों के अनुसार डिज़ाइन किए गए डेटा को संग्रहीत और पुनर्प्राप्त करने के लिए किया जा सकता है। छवियों को प्रबंधित करने के लिए अधिकांश अनुप्रयोगों की आवश्यकता होती है। यह ट्यूटोरियल छवियों को एक MySQL तालिका में संग्रहीत करने के विकल्प प्रदान करता है।
नोट :पेशेवर आपकी कंपनी या आपकी परियोजना के लिए छवि डेटाबेस विकास में आपकी सहायता कर सकते हैं।
छवि पथ संगृहीत करें
फ़ाइल सिस्टम पर निर्देशिकाओं में छवियों को संग्रहीत करना और SQL और MySQL जैसे डेटाबेस में फ़ोटो के संदर्भों को संग्रहीत करना सबसे सरल तरीका है, उदाहरण के लिए, छवि का पथ, छवि का नाम, और इसी तरह। वैकल्पिक रूप से, आप छवियों को सीडीएन या कई मेजबानों पर पर्याप्त क्षेत्र के कुछ बड़े विस्तार में भी रख सकते हैं और उस डेटाबेस में उन संसाधनों तक पहुंचने के लिए उनके संदर्भ रख सकते हैं।
इस तरह, हमें पूरी छवि को डेटाबेस में रखने की आवश्यकता नहीं है, बल्कि एक फ़ोल्डर में संग्रहीत छवि के लिए केवल पथ को संग्रहीत करने की आवश्यकता है। छवियों को संग्रहीत करना अच्छा है यदि छवियां हमेशा एक ही फ़ोल्डर में होंगी, अर्थात यदि प्रत्येक छवि का अपना अनूठा पथ होगा जो हमेशा समान रहेगा। हालाँकि, कुछ मामलों में, छवियों को एक फ़ोल्डर से दूसरे फ़ोल्डर में स्थानांतरित किया जाना है। उस स्थिति में, छवि फ़ाइल के लिए एक गतिशील पथ बनाना सबसे अच्छा समाधान है, इसलिए यदि छवि को स्थानांतरित करना है, तो डेटाबेस को संशोधित करने की कोई बाध्यता नहीं होगी।
जैसा कि नीचे दिखाया गया है, हम छवि पथ फ़ील्ड जोड़ने के लिए मौजूदा तालिका को अपडेट कर सकते हैं।
// Add column to store image path
ALTER TABLE `my_table`
ADD COLUMN `image_pathLocation` varchar(1024)
एक अन्य तरीका छवियों के लिए एक अलग तालिका बनाना और छवि तालिका का उपयोग करके तालिकाओं में एक संदर्भ जोड़ना है। इस तरह, कई टेबल छवियों को एक ही टेबल में स्टोर कर सकते हैं। आप अपनी छवियों को संग्रहीत करने के लिए नीचे दी गई तालिका का उपयोग कर सकते हैं।
// Create the Image table
CREATE TABLE image (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(1024) NOT NULL,
`title` VARCHAR(2048) NULL,
`description` VARCHAR(4096) NULL,
`extension` VARCHAR(160) NULL,
`directory` VARCHAR(512) NULL,
`size` FLOAT NOT NULL,
`type` VARCHAR(50) NOT NULL,
`url` VARCHAR(2048) NULL,
`medium` VARCHAR(1024) NULL,
`small` VARCHAR(1024) NULL,
`thumb` VARCHAR(1024) NULL,
`caption` VARCHAR(1024) NULL,
`altText` VARCHAR(512) NULL,
`createdAt` DATETIME NULL,
`modifiedAt` DATETIME NULL,
PRIMARY KEY (`id`),
INDEX `idx_image_name` (`name` ASC),
INDEX `idx_image_type` (`type` ASC)
) ENGINE = InnoDB;
उपर्युक्त तालिका में, नाम संग्रहीत की जा रही छवि का वास्तविक नाम है, और छवि अपलोड करने वाले उपयोगकर्ताओं से इनपुट प्राप्त करने के लिए शीर्षक वैकल्पिक है। साथ ही, टाइप कॉलम यह तय कर सकता है कि छवि स्थानीय रूप से या सीडीएन पर संग्रहीत है या नहीं। यदि यह स्थानीय रूप से संग्रहीत है, तो हम उस पथ को निर्दिष्ट करने के लिए कॉलम निर्देशिका का उपयोग कर सकते हैं जहां छवि संग्रहीत है। सीडीएन के मामले में, हम छवि का आधार पथ प्राप्त करने के लिए कॉलम यूआरएल का उपयोग कर सकते हैं। प्रकार, निर्देशिका और URL के अलावा, हम एक ही छवि को कई आकारों में संग्रहीत करने के लिए छोटे, मध्यम और बड़े का भी उपयोग कर सकते हैं।
जब आपको चित्रों का उपयोग करने की आवश्यकता हो, तो उन्हें निर्दिष्ट पथ का उपयोग करके डिस्क से पुनर्प्राप्त करें। इस दृष्टिकोण का लाभ यह है कि चित्रों को डिस्क पर संग्रहीत करने की आवश्यकता नहीं है; हम एक छवि पथ के बजाय एक यूआरएल पकड़ सकते हैं और किसी भी इंटरनेट-सुलभ स्थान से छवियों को पुनर्प्राप्त कर सकते हैं।
छवि को MySQL तालिका में संग्रहीत करें
MySQL डेटाबेस में इमेज को स्टोर करने का दूसरा तरीका इसे टेबल में ही स्टोर करना है। छवियों का आकार काफी बड़ा हो सकता है, कभी-कभी 1 या 2MB से भी बड़ा। इसलिए, डेटाबेस में छवियों को संग्रहीत करना आपके डेटाबेस और आपके डेटाबेस और आपके वेब सर्वर के बीच के नेटवर्क पर अतिरिक्त भार डाल सकता है यदि वे अलग-अलग होस्ट पर हैं।
इस दृष्टिकोण में, छवि फ़ाइलों को प्रबंधित करना चुनौतीपूर्ण हो सकता है। अन्य ऑपरेशन करने से पहले आपको पहले उन्हें डेटाबेस से पुनर्स्थापित करना होगा।
कुछ अपवाद हैं जहां संपूर्ण डेटाबेस RAM में संग्रहीत है। MySQL डेटाबेस क्रमिक रूप से एक डिस्क पर संग्रहीत होते हैं। इसका अर्थ है कि आपकी डेटाबेस चित्र फ़ाइलें ब्लॉब्स में कनवर्ट की जाती हैं, डेटाबेस में एम्बेड की जाती हैं, और फिर डिस्क पर रखी जाती हैं। जैसा कि पहले दृष्टिकोण में बताया गया है, हम उन्हें केवल डिस्क पर संग्रहीत करके बहुत सी समस्याओं से बच सकते हैं।
अब इमेज को डेटाबेस में स्टोर करने के लिए टेबल इमेज बनाएं। मैंने प्रदर्शन उद्देश्यों के लिए छवि के नाम को संग्रहीत करने के लिए प्रत्येक छवि और कैप्शन की पहचान करने के लिए आईडी का उपयोग किया है। चित्र स्तंभ डेटा प्रकार का उपयोग करके तालिका में छवि को LONGBLOB . के रूप में संग्रहीत करता है ।
// Create the Image table
CREATE TABLE image (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(1024) NOT NULL,
`title` VARCHAR(2048) NULL,
`description` VARCHAR(4096) NULL,
`extension` VARCHAR(160) NULL,
`size` FLOAT NOT NULL,
`caption` VARCHAR(1024) NULL,
`altText` VARCHAR(512) NULL,
`picture` LONGBLOB NOT NULL,
`createdAt` DATETIME NULL,
`modifiedAt` DATETIME NULL,
PRIMARY KEY (`id`),
INDEX `idx_image_name` (`name` ASC),
INDEX `idx_image_type` (`type` ASC)
) ENGINE = InnoDB;
सारांश
इस ट्यूटोरियल ने MySQL डेटाबेस का उपयोग करके छवियों को संग्रहीत करने के विकल्प प्रदान किए। अन्य डेटाबेस के लिए भी यही दृष्टिकोण अपनाया जा सकता है।