मैं जीमेल जैसे ईमेल मैसेजिंग सिस्टम बनाना चाहता हूं। मुझे निम्नलिखित विकल्प चाहिए: तारांकित, कचरा, स्पैम, ड्राफ्ट, पढ़ें, अपठित। अभी मैं अपने डेटाबेस में नीचे निम्नलिखित संरचना है:ईमेल मैसेजिंग सिस्टम के लिए डेटाबेस डिज़ाइन
CREATE TABLE [MyInbox](
[InboxID] [int] IDENTITY(1,1) NOT NULL,
[FromUserID] [int] NOT NULL,
[ToUserID] [int] NOT NULL,
[Created] [datetime] NOT NULL,
[Subject] [nvarchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Body] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[IsRead] [bit] NOT NULL,
[IsReceived] [bit] NOT NULL,
[IsSent] [bit] NOT NULL,
[IsStar] [bit] NOT NULL CONSTRAINT [DF_MyInbox_IsStarred] DEFAULT ((0)),
[IsTrash] [bit] NOT NULL CONSTRAINT [DF_MyInbox_IsTrashed] DEFAULT ((0)),
[IsDraft] [bit] NOT NULL CONSTRAINT [DF_MyInbox_Isdrafted] DEFAULT ((0))
) ON [PRIMARY]
लेकिन मैं ऊपर संरचना के साथ कुछ मुद्दों का सामना करना पड़ रहा है। अभी यदि उपयोगकर्ता ए उपयोगकर्ता बी के लिए msessage भेजता है, तो मैं इस तालिका में एक पंक्ति संग्रहित कर रहा हूं लेकिन यदि उपयोगकर्ता बी उस संदेश को हटा देता है तो यह हटा दिया जाता है उपयोगकर्ता के एक भेजे गए संदेश को भी हटा दिया जाता है। यह गलत है, मैं बिल्कुल सामान्य ईमेल संदेश प्रणाली के रूप में चाहता हूं। अगर कोई अपने भेजे गए आइटम से संदेश हटा देता है तो बी को अपने इनबॉक्स से हटाया नहीं जाना चाहिए। मैं यहां दूसरी समस्या पर सोच रहा हूं जो मान लीजिए कि उपयोगकर्ता ए ने एक बार 500 उपयोगकर्ताओं को एक मेल भेजा था, इसलिए मेरे डिजाइन के अनुसार मेरे पास डुप्लिकेट निकायों के साथ 500 पंक्तियां होंगी, यानी इसे स्टोर करने के लिए मेमोरी प्रभावशाली तरीका नहीं है। क्या आप लोग मैसेजिंग सिस्टम के लिए डिज़ाइन बनाने में मेरी मदद कर सकते हैं?
क्या आप कृपया वर्णन कर सकते हैं, हम इस डिज़ाइन में कैसे जानते हैं जो उपयोगकर्ता से और उपयोगकर्ता द्वारा संदेश भेजा जा रहा है। – zarpio
@zarpio संदेश तालिका में लेखक आईडी प्रेषक आईडी है। –
क्या आपके पास User_Messages_Mapped तालिका में एक समग्र कुंजी नहीं होनी चाहिए? – user3308043