2011-06-08 13 views
12

फेसबुक उपयोगकर्ताओं के बीच संचार एक लंबे "वार्तालाप" में संग्रहीत प्रतीत होता है। इसलिए, भेजे गए ईमेल और निजी चैट संदेशों का आदान-प्रदान सभी एक लंबे चल रहे वार्तालाप का हिस्सा प्रतीत होता है।डेटाबेस डिज़ाइन: निजी चैट, समूह चैट, और ईमेल

मुझे लगता है कि यह कार्यान्वयन उपयोगकर्ताओं के लिए अच्छा काम करता है (कम से कम यह मेरे लिए करता है)।

TABLE: message 
- message_id 
- timestamp 
- from_user_id 
- to_user_id 
- message 

क्या होगा यदि मैं समूह चैट समर्थन करना चाहते थे: मैं इस भाग के लिए तालिका डिजाइन इस तरह से लागू किया जा सकता मान? क्या मैं ऐसा कुछ करूंगा:

TABLE: message 
- message_id 
- timestamp 
- from_user_id 
- message 

TABLE: message_recipient 

- message_recipient_id 
- message_id 
- to_user_id 

मुझे लगता है कि यह काम करेगा। हालांकि, मैं सोच रहा हूं कि क्या यह उपयोगकर्ता को समझ में आता है अगर मैंने उन सभी चीजों को प्रदर्शित किया जो उपयोगकर्ता ने किसी एक लंबे वार्तालाप में किसी को भी संदेश भेजा है। यह शायद नहीं होगा। व्यक्ति ए के साथ बातचीत के साथ मिश्रित व्यक्ति ए, बी, सी, डी के साथ समूह वार्तालाप के साथ मिश्रित व्यक्ति ए के साथ बातचीत की कल्पना करें ....

किसी भी सुझाव को लागू करने के लिए उपयोग करने योग्य अवधारणा क्या होगी?

उत्तर

7

मेरा मानना ​​है कि संदेश एक इकाई,, id, message, timestamp फ़ील्ड और संदेश संबंध तालिका के साथ किया जाना चाहिए मंच या प्रेषक/रिसीवर की परवाह किए बिना - id, message_id, from_id, to_id साथ - जैसे आप का सुझाव दिया। फिर, यदि आप उपयोगकर्ता बातचीत के लिए एक एकल उपयोगकर्ता दिखा रहे हैं, तो आप उनके बीच हर संदेश दिखा सकते हैं। समूह चैट के लिए, आप id, title, timestamp कि मुख्य रिकॉर्ड में दर्ज चैट समूह रखती है, और एक अन्य टेबल है कि उपयोगकर्ताओं को लगता है कि है कि समूह चैट का हिस्सा हैं, id, group_chat_id, user_id क्षेत्रों के साथ रखती है के साथ एक मेज पर होना चाहिए।

बस मेरी राय और मैं इसे कैसे कार्यान्वित करूंगा।

संपादित करें: शायद संदेश इकाई पर from_id होने का अर्थ होगा, क्योंकि एक संदेश में एकवचन प्रेषक आईडी होना चाहिए।

1

आप विषयों द्वारा संदेशों को भी समूहबद्ध कर सकते हैं। आप एक विषय तालिका जोड़ते हैं। आप किसी विषय से बंधे एक प्राप्तकर्ता तालिका जोड़ते हैं। संदेश किसी विषय से भी बंधे होंगे।

आप दो उपयोगकर्ताओं के बीच विषयों को प्रोग्रामेटिक रूप से सीमित कर सकते हैं यह देखकर कि किस विषय में उनके दो उपयोगकर्ता अपने प्राप्तकर्ता हैं। आप अपने संदेशों को एक प्रकार की विशेषता देकर अलग कर सकते हैं। उदाहरण के लिए, टाइप 0 एक इनबॉक्स संदेश होगा, टाइप 1 एक चैट संदेश होगा और इसी तरह।

यदि मैं एक विषय में प्राप्तकर्ताओं की मनमानी संख्या चाहता हूं, तो मैं from_id/to_id कॉम्बो से बचूंगा।

संबंधित मुद्दे