আমি এসই এবং অন্য কোথাও কীভাবে একটি নোটিফিকেশন সিস্টেম তৈরি করব তা আমি সন্ধান করেছি এবং সমাধানের দিকে নিজেকে টানতে পেরেছি যা এখানে গ্রহণযোগ্য উত্তর: /programming/ এই কাঠামো:
╔═════════════╗ ╔═══════════════════╗ ╔════════════════════╗
║notification ║ ║notification_object║ ║notification_change ║
╟─────────────╢ ╟───────────────────╢ ╟────────────────────╢
║ID ║—1:n—→║ID ║—1:n—→║ID ║
║userID ║ ║notificationID ║ ║notificationObjectID║
╚═════════════╝ ║object ║ ║verb ║
╚═══════════════════╝ ║actor ║
╚════════════════════╝
একটি বিজ্ঞপ্তি হ'ল কিছু (বস্তু = ইভেন্ট, বন্ধুত্ব ..) সম্পর্কে পরিবর্তিত হওয়া (ক্রিয়া = যুক্ত, অনুরোধ করা ..) দ্বারা (অভিনেতা) এবং ব্যবহারকারীকে (বিষয়) প্রতিবেদন করা। এখানে একটি সাধারণীকরণের ডেটা স্ট্রাকচার (যদিও আমি মঙ্গোডিবি ব্যবহার করেছি)। পরিবর্তনগুলি সম্পর্কে আপনাকে নির্দিষ্ট ব্যবহারকারীদের অবহিত করতে হবে। সুতরাং এটি প্রতি ব্যবহারকারীর বিজ্ঞপ্তিগুলি .. এর অর্থ হ'ল 100 জন ব্যবহারকারী জড়িত থাকলে আপনি 100 টি বিজ্ঞপ্তি উত্পন্ন করেন।
আমি প্রথমে ভেবেছিলাম যে আমি এই পদ্ধতির বিষয়টি বুঝতে পেরেছি, তবে আমি যখন এটি বাস্তবায়নের জন্য প্রস্তুত হতে শুরু করেছি তখন বুঝতে পেরেছিলাম যে স্পষ্টতই আমি এটি বিশেষভাবে ভালভাবে বুঝতে পারি না। উত্তরের সর্বশেষ কয়েকটি মন্তব্য হ'ল অন্যান্য ব্যবহারকারীদের প্রশ্ন যা সমাধানটি বুঝতে অসুবিধা হয়েছে।
আমি নিশ্চিত নই যে এই মডেলটি আমি অনুসরণ করে শেষ করব, তবে এটির যে সংখ্যাটি রয়েছে তা বিবেচনা করে আমি নিশ্চিত যে এটির বিষয়টি বুঝতে আমার উপকার হবে এবং আমি আরও শিখতে চাই। আমি আশা করি অন্যদেরও এটি কার্যকর হবে যারা এই সমাধানটি উপলব্ধি করতে সমস্যায় পড়েছেন (ঘটনাক্রমে, আমার কাছে এই প্রশ্নের উত্তর দেওয়ার জন্য এই মন্তব্যে কোনও মন্তব্য করার মতো পর্যাপ্ত ইন্টারনেট পয়েন্ট নেই, অন্য কেউ দয়া করে করুন!)
প্রশ্নাবলি
যদি আমি এটা সঠিক বুঝতে, notificationObjectID করার জন্য একটি বিদেশী কী ইশারা হয় notification_object টেবিল ও notificationID নির্দেশিত একটি বিদেশী চাবিকাঠি প্রজ্ঞাপন টেবিল। দেখে মনে হচ্ছে অবজেক্টটি কোনও বিদেশী কী হওয়া উচিত যা বিজ্ঞপ্তিটি (যেমন কোনও নির্দিষ্ট ইভেন্ট বা পোস্ট) এর ডাটাবেস এন্ট্রিটির আইডি উল্লেখ করে, তবে আমাদের আইডিটি কোন টেবিলের সাথে সম্পর্কিত তা বোঝানোর জন্য আমাদের আর কোনও ক্ষেত্রের প্রয়োজন নেই?
লেখক লিখেছেন
নোটিফিকেশন_অবজেক্ট.অবজেক্ট স্ট্রিং "মৈত্রী" এর মতো পরিবর্তনের ধরণ চিহ্নিত করে, তার অতিরিক্ত ডেটা নিয়ে আমি যেটির সাথে কথা বলি পরিবর্তিত অবজেক্টের প্রকৃত রেফারেন্সটি নোটিফিকেশন_নোবিফিকেশনঅবজেক্টআইডি তে থাকে
যা আমার কাছে বোধগম্য নয়। অবজেক্টটি একটি স্ট্রিং (এনাম?) এবং নোটিফিকেশনঅবজেক্টআইডি একটি বিদেশী কী যা নোটিফিকেশনটি অবজেক্টের বিষয়ে উল্লেখ করে? তারপরে কীভাবে মাঝারি এবং ডান টেবিলগুলি সংযুক্ত রয়েছে?
দেখে মনে হয় যে মাঝের টেবিলটি নোটিফিকেশনটি কোন বস্তুর (বা বস্তুর প্রকারের) বিষয়ে নির্দিষ্ট করে, যেমন কোনও ইভেন্ট বা পোস্ট। তারপরে আমাদের বিজ্ঞপ্তি_দলে অনেকগুলি প্রবেশ থাকতে পারে যা একই অবজেক্টের ধরণের দিকে নির্দেশ করে, যা আমাদের বিজ্ঞপ্তিগুলি বান্ডিল করতে দেয় ("এক্স এর দেয়ালে পোস্ট করা" 25 ব্যবহারকারীদের মতো) - সুতরাং মধ্যম এবং ডান টেবিলগুলির মধ্যে 1: n সম্পর্ক।
তবে বাম এবং মাঝের টেবিলগুলির মধ্যে কেন 1: n সম্পর্ক রয়েছে? আমরা কি "স্যামের দেওয়ালে পোস্ট করা" 25 জন ব্যবহারকারী "এবং" মেরি তার "ফ্রাইডে পিকনিক" ইভেন্টটি একই বিজ্ঞপ্তি আইডিটি আপডেট করতে যাচ্ছি? একই ব্যবহারকারীর জন্য সমস্ত বিজ্ঞপ্তিগুলির যদি একই বিজ্ঞপ্তি আইডি থাকে, তবে আমাদের এমনকি কেন টেবিলটির প্রয়োজন হবে? বাকি?
একটি পারফরম্যান্স প্রশ্ন - বলুন জন মেরির পিকনিক ইভেন্টে একটি মন্তব্য পোস্ট করেছেন। দেখে মনে হচ্ছে যে আমরা নোটিফিকেশন_ইঞ্জিং এন্ট্রি তৈরি করার আগে মেরি পিকনিকের জন্য একটি নোটিফিকেশন_বজেক্ট ইতিমধ্যে উপস্থিত রয়েছে কিনা তা দেখার জন্য আমাদের একটি নজরদারি করতে হবে । এটি কি নেতিবাচকভাবে পারফরম্যান্সকে প্রভাবিত করবে, না এটি একটি ইস্যু নয়? পূর্ববর্তী অনুচ্ছেদ কাছ থেকে প্রশ্ন অব্যাহত, কিভাবে আমরা জানতে চাই যা প্রজ্ঞাপন এন্ট্রি নির্দেশ notification_object কিভাবে?