के लिए डेटाबेस संरचना मैं फेसबुक जैसे वेब मैसेजिंग सिस्टम बनाना चाहता हूं। मैं डेटाबेस संरचना के लिए पहले से ही कई विकल्पों के बारे में सोचता हूं, लेकिन यह सुनिश्चित नहीं करता कि इसके लिए सबसे अच्छा अभ्यास कौन सा है। मेरे पास दो विकल्प हैं, पहला दो टेबल का उपयोग कर रहा है, दूसरा तीन टेबल का उपयोग कर रहा है लेकिन ईआरडी में एक चक्र बना रहा है।वेब मैसेजिंग सिस्टम
पहले: दो टेबल, जहां संदेश तालिका
user
----------
id
name
message
--------------
id
from_id
to_id
message_id --> refer to this table itself, to make me know which message is the topic
subject
content
time
status --> inbox, outbox, archive
read --> read, unread
दूसरा ही को देखें: तीन टेबल, लेकिन
user
----------
id
name
message_header
--------------
id
from_id
to_id
subject
status --> inbox, outbox, archive
time
message
--------
id
message_header_id
content
time
read --> read, unread
author_id
व्यक्तिगत रूप से, मैं इस संरचना की तरह, क्योंकि यह erd में एक चक्र बनाने केवल एक संदेश शीर्षलेख और कई संदेश (सामग्री) का उपयोग करें। लेखक_आईडी को हटाया नहीं जा सकता है क्योंकि मुझे यह जानने की जरूरत है कि संदेश बाईं ओर (प्रेषक के रूप में) या दाएं तरफ (एक रिसीवर के रूप में) है या नहीं। यह प्रणाली सिर्फ दो व्यक्ति संदेश प्रणाली के लिए है।
असल में यह दो तालिका समान है, लेकिन इस संदेश प्रणाली को लागू करने का सबसे अच्छा अभ्यास कौन सा है? पहले धन्यवाद
संदेश एक निश्चित संदेश का उत्तर देने के आदेश से श्रृंखलित होना चाहिए या वे प्रति टाइमस्टैम्प – aeonsleo
का उपयोग करते हुए जबाब आदेश (पहली उच्च आईडी) के रूप में सूचीबद्ध किया जाना चाहिए एक छोटे से हो सकता है सस्ता है, लेकिन आप टाइमस्टैम्प ऑर्डरिंग (बेशक, एक उपयुक्त इंडेक्स के साथ) मामले में अधिक दोस्ताना मान सकते हैं, मान लीजिए, कोई इंटरनेट के बिना जवाब देता है और डेटाबेस को प्रभावी रूप से संदेश भेजने में कुछ समय लगता है। उस ने कहा, आप तय करते हैं:> –
"is_from_sender" विशेषता का उपयोग क्या है? –