मैं कम से कम निम्नलिखित रखने का सुझाव दूंगा:
उपयोगकर्ता, थ्रेड, संदेश
- सभी संदेशों में एक धागा होगा
- विदेशी कुंजी:thread_id
- सभी थ्रेड्स में कम से कम एक संदेश और कम से कम एक प्राप्तकर्ता (साथ ही प्रेषक) होगा
- विदेशी कुंजी:to_user_id, from_user_id, message_id
वहां से आप बस अपने धागे (to_user_deleted, from_user_deleted) पर कुछ झंडे असाइन कर सकते हैं जिन्हें तदनुसार अपडेट किया जाएगा।
निश्चित रूप से विचार करने के लिए और भी बहुत सी चीज़ें हैं, जैसे कि आप किस प्रकार की चीज़ों का हिसाब देना चाहते हैं। उदाहरण के लिए:
- क्या आप वर्तमान संदेश को आरंभिक संदेश के विपरीत प्रदर्शित करना चाहते हैं?
- क्या आप उपयोगकर्ताओं को अलग-अलग संदेशों को पढ़े गए या केवल थ्रेड के रूप में चिह्नित करने की अनुमति देना चाहते हैं?
आपको अपना डेटाबेस डिजाइन करते समय इन सभी बातों का ध्यान रखना होगा।