কম্পিউটার টিউটোরিয়াল

MySQL-এ সাপ্তাহিক ইভেন্ট সংরক্ষণের সেরা পদ্ধতি

MySQL-এ সাপ্তাহিক রিকারেন্ট ইভেন্ট (যেমন ক্লাস শিডিউল, সাপ্তাহিক মিটিং) সংরক্ষণের জন্য সবচেয়ে কার্যকর পদ্ধতি হল প্রতিটি দিনের জন্য বুলিয়ান কলাম ব্যবহার করা। এটি ক্যোয়ারি সহজ ও দ্রুত করে।

টেবিল ডিজাইন

CREATE TABLE weekly_events (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    event_name VARCHAR(100),
    monday TINYINT(1) DEFAULT 0,
    tuesday TINYINT(1) DEFAULT 0,
    wednesday TINYINT(1) DEFAULT 0,
    thursday TINYINT(1) DEFAULT 0,
    friday TINYINT(1) DEFAULT 0,
    saturday TINYINT(1) DEFAULT 0,
    sunday TINYINT(1) DEFAULT 0,
    start_date DATE,
    end_date DATE
);

নমুনা ডেটা ইনসার্ট

INSERT INTO weekly_events (event_name, monday, tuesday, wednesday, thursday, friday, saturday, sunday, start_date, end_date) VALUES
('Weekly Yoga', 0, 0, 1, 0, 1, 0, 0, '2024-01-01', '2024-12-31'),
('Team Meeting', 1, 0, 0, 0, 0, 0, 0, '2024-01-01', '2024-06-30'),
('Weekend Workshop', 0, 0, 0, 0, 0, 1, 1, '2024-02-01', '2024-11-30');

ক্যোয়ারি উদাহরণ

শুক্রবারের সব ইভেন্ট

SELECT * FROM weekly_events WHERE friday = 1;

নির্দিষ্ট তারিখ পরিসীমার মধ্যে শনিবার-রবিবারের ইভেন্ট

SELECT * FROM weekly_events 
WHERE (saturday = 1 OR sunday = 1)
  AND start_date <= '2024-03-15'
  AND end_date >= '2024-03-15';

একটি নির্দিষ্ট দিনের সব ইভেন্ট (ডাইনামিক)

SET @day = 'wednesday';
SET @sql = CONCAT('SELECT * FROM weekly_events WHERE ', @day, ' = 1');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

কেন এই পদ্ধতি ভালো?

  • দ্রুত ক্যোয়ারি: ইনডেক্স ব্যবহার করে দ্রুত ফিল্টার করা যায়
  • সरल জ farlo: WHERE monday = 1 খুবই বোঝা সহজ
  • স্টোরেজ দক্ষ: TINYINT(1) শুধু ১ বাইট নেয়
  • ফ্লেক্সিবল: একাধিক দিন সহজে সিলেক্ট করা যায়

বিকল্প পদ্ধতি (JSON - MySQL 5.7+)

CREATE TABLE events_json (
    id INT AUTO_INCREMENT PRIMARY KEY,
    event_name VARCHAR(100),
    days JSON,  -- ["monday", "wednesday", "friday"]
    start_date DATE,
    end_date DATE
);

INSERT INTO events_json VALUES (1, 'Coding Class', '["monday", "wednesday", "friday"]', '2024-01-01', '2024-12-31');

-- JSON ক্যোয়ারি (MySQL 5.7+)
SELECT * FROM events_json WHERE JSON_CONTAINS(days, '"wednesday"');

JSON পদ্ধতিটি আরও ফ্লেক্সিবল কিন্তু ক্যোয়ারি কিছুটা জটিল। সাদা সাপ্তাহিক শিডিউলের জন্য বুলিয়ান কলাম পদ্ধতিই সুপারিশযোগ্য।

  1. জাভাস্ক্রিপ্টে ইভেন্ট যোগ করার সেরা পদ্ধতি

  2. MySQL ডেটাবেস ফাইলগুলো কোথায় স্টোর থাকে? (@@datadir)

  3. MySQL-এ একটি কলাম আপডেট করার সেরা পদ্ধতি (UPDATE SET)

  4. ২০২৪ সালে আপনার ফটো প্রিন্ট নিরাপদে সংরক্ষণ করার 궁극ের গাইড