"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > MySQL में ऐरे संग्रहीत किए बिना एकाधिक वोटिंग को कैसे रोकें?

MySQL में ऐरे संग्रहीत किए बिना एकाधिक वोटिंग को कैसे रोकें?

2024-11-22 को प्रकाशित
ब्राउज़ करें:593

How to Prevent Multiple Voting without Storing Arrays in MySQL?

MySQL में ऐरे का भंडारण: एकाधिक वोटिंग को रोकने के लिए एक वैकल्पिक दृष्टिकोण

MySQL मूल रूप से फ़ील्ड के भीतर ऐरे के भंडारण का समर्थन नहीं करता है। हालाँकि, एक समान परिणाम प्राप्त करने के लिए एक रिलेशनल डेटाबेस डिज़ाइन को नियोजित किया जा सकता है। तालिका टिप्पणियाँ बनाएँ ( comment_id INT प्राथमिक कुंजी, बॉडी वर्चर(100) ); तालिका उपयोगकर्ता बनाएँ ( user_id INT प्राथमिक कुंजी, उपयोक्तानाम VARCHAR(20) ); तालिका टिप्पणियाँ_वोट्स बनाएं ( comment_id INT, उपयोगकर्ता_आईडी आईएनटी, वोट_प्रकार INT, प्राथमिक कुंजी (टिप्पणी_आईडी, उपयोगकर्ता_आईडी) );

टिप्पणियाँ_वोट्स तालिका यह सुनिश्चित करने के लिए एक समग्र प्राथमिक कुंजी का उपयोग करती है कि प्रत्येक उपयोगकर्ता किसी दिए गए टिप्पणी पर केवल एक बार वोट कर सकता है।

उदाहरण डेटा

CREATE TABLE comments (
    comment_id INT PRIMARY KEY,
    body VARCHAR(100)
);

CREATE TABLE users (
    user_id INT PRIMARY KEY,
    username VARCHAR(20)
);

CREATE TABLE comments_votes (
    comment_id INT,
    user_id INT,
    vote_type INT,
    PRIMARY KEY (comment_id, user_id)
);

लाभ

इस दृष्टिकोण के कई फायदे हैं:

-- Insert sample data
INSERT INTO comments VALUES (1, 'First comment');
INSERT INTO comments VALUES (2, 'Second comment');
INSERT INTO comments VALUES (3, 'Third comment');

INSERT INTO users VALUES (1, 'user_a');
INSERT INTO users VALUES (2, 'user_b');
INSERT INTO users VALUES (3, 'user_c');

-- Record user 1's votes
INSERT INTO comments_votes VALUES (1, 1, 1);
INSERT INTO comments_votes VALUES (2, 1, 1);
बचाती है एकाधिक वोटिंग:

comments_votes तालिका पर प्राथमिक कुंजी बाधा संदर्भात्मक अखंडता को लागू करती है और डेटा सुनिश्चित करती है स्थिरता।

लचीला वोट प्रकार:

वोट_टाइप कॉलम विभिन्न प्रकार के वोटों की अनुमति देता है, जैसे पसंद या नापसंद।

  • पूछना आसान: रिलेशनल मॉडल मतदाता जानकारी और वोटों की गिनती के लिए कुशल पूछताछ को सक्षम बनाता है।
  • विदेशी कुंजी बाधाएँ (वैकल्पिक)
  • इसके अतिरिक्त, तालिकाओं के बीच संदर्भात्मक अखंडता को लागू करने के लिए विदेशी कुंजी बाधाओं को जोड़ा जा सकता है:
  • तालिका टिप्पणियाँ बनाएँ ( ... ) इंजन=INNODB; तालिका उपयोगकर्ता बनाएँ ( ... ) इंजन=INNODB; तालिका टिप्पणियाँ_वोट्स बनाएं ( ... विदेशी कुंजी (टिप्पणी_आईडी) संदर्भ टिप्पणियाँ (टिप्पणी_आईडी), विदेशी कुंजी (user_id) संदर्भ उपयोगकर्ता (user_id) ) इंजन = INNODB;
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3