मेरे पास घटनाएं और तस्वीरें हैं, और फिर दोनों के लिए टिप्पणियां हैं। अभी, मेरे पास दो टिप्पणियां सारणी हैं, एक घटनाओं से संबंधित टिप्पणियों के लिए, और फोटो टिप्पणियों के लिए दूसरा। स्कीमा इस के समान है:जब दो टेबल बहुत समान होते हैं, तो उन्हें कब जोड़ा जाना चाहिए?
CREATE TABLE EventComments
(
CommentId int,
EventId int,
Comment NVarChar(250),
DateSubmitted datetime
)
CREATE TABLE PhotoComments
(
CommentId int,
PhotoId int,
Comment NVarChar(250),
DateSubmitted datetime
)
मेरे सवालों का है या नहीं, मैं उन्हें गठबंधन करना चाहिए, और एक अलग पार संदर्भ तालिका जोड़ने के लिए, लेकिन मैं इसे ठीक से करने के लिए एक तरह से सोच भी नहीं सकते है। मुझे लगता है कि यह ठीक होना चाहिए, आपके विचार क्या हैं?
संपादित
वाल्टर के जवाब (और कुछ प्रकाश पढ़ने) के आधार पर, मैं इस के साथ आ गया है:
CREATE TABLE Comments
(
CommentId int,
Comment NVarChar(250),
DateSubmitted datetime
CONTRAINT [PK_Comments] PRIMARY KEY
(
CommentId
)
)
CREATE TABLE EventComments
(
CommentId int,
EventId int
)
CREAT TABLE PhotoComments
(
CommentId int,
PhotoId int
)
ALTER TABLE EventComments ADD CONSTRAINT FK_EventComments FOREIGN KEY (CommentId) REFERENCES Comments(CommentId)
ALTER TABLE PhotoComments ADD CONSTRAINT FK_PhotoComments FOREIGN KEY (CommentId) REFERENCES Comments(CommentId)
वहाँ वास्तव में संरचनाओं के बीच किसी भी प्रदर्शन अंतर है? मेरे लिए, यह थोड़ा वरीयता की तरह लगता है। मुझे दूसरी स्कीमा में लाभ दिखाई देते हैं, अगर मैं ईवेंट टिप्पणियों या फोटो टिप्पणियों में कुछ विशिष्टता जोड़ना चाहता हूं, तो मेरे पास ऐसा करने के लिए एक अलग टेबल है, और यदि मैं दोनों को एक नई संपत्ति साझा करना चाहता हूं, तो एक ही टेबल है नई संपत्ति जोड़ें।
पेज पर सर्वश्रेष्ठ शुद्ध डिजाइन टिप्पणी, आईएमएचओ। – Rap
मैंने कुछ शोध किया और सवाल अपडेट किया।इनपुट – scottm
के लिए धन्यवाद मैं इस जवाब से दृढ़ता से असहमत हूं; अभ्यास में, आप असंगत, गन्दा डेटा के लिए भीख मांग रहे हैं। टिप्पणियां कैसे हटाई जाती हैं? मैं अक्सर इसे स्थापित करता हूं जैसे कि स्कॉटएम ने इसे संशोधित प्रश्न में लागू किया है, और लगभग हमेशा टिप्पणी टिप्पणियों में रहती है, लेकिन EventComments या PhotoComments में संबंधित रिकॉर्ड हटा दिया जाता है, और आपको टिप्पणियों में एक खतरनाक रिकॉर्ड के साथ छोड़ दिया जाता है। – JasonFruit