मैं एक परियोजना पर काम कर रहा है कि सामग्री के ड्राफ्ट/सजीव संस्करणों की आवश्यकता है और इस तरह के नीचे के रूप में एक डिजाइन के बारे में सोचा हैड्राफ्ट/लाइव सामग्री सिस्टम डाटाबेस डिजाइन
Article
ID
Creator
CreationDate
DraftContent(fk to ArticleContent)
PublicContent(fk to ArticleContent)
IsPendingApproval
ArticleContent
Title
Body
मैं सोच रहा हूँ अगर यह होगा प्रकाशित होने वाले लेख पर विदेशी कुंजी को बदलने के लिए बेहतर है या यदि ड्राफ्ट टेबल से सामग्री को प्रतिलिपि बनाने के लिए बेहतर है तो लाइव तालिका में।
कोई सुझाव?
संपादित करें: दोनों ड्राफ्ट और लाइव संस्करण एक साथ मौजूद हैं हालांकि लाइव संस्करण केवल एक ही है जो जनता के लिए दृश्यमान है। केवल एक ड्राफ्ट और एक लाइव टेबल
इस डिज़ाइन के कारण का एक हिस्सा उपयोगकर्ताओं को उनके लेखों को लाइव होने से पहले अनुमोदित करना है।
अद्यतन:
हम एक मामूली संशोधन के साथ Kieren के समाधान का उपयोग करने का फैसला किया। IsPublished IsLive जैसी वस्तुओं के लिए कॉलम का उपयोग करने के बजाय हमने एक राज्य कॉलम का उपयोग करने का निर्णय लिया। अन्यथा डिजाइन एक ही बना रहा।
+1, "सामग्री की एक अलग तालिका, सामग्री की अलग तालिका के साथ" वास्तव में यहां उड़ने का तरीका है। –
संभावित रूप से बहुत आसान - प्रत्येक ArticleVersion में एक स्वीकृत/स्वीकृत दिनांक होगा, यह वर्तमान संस्करण पर सेट नहीं किया जा सकता है यदि यह शून्य है (व्यवसाय तर्क में)? –
संस्करण संख्या होने के बजाय संस्करण पंक्ति के लिए संशोधन तिथि और निर्माण तिथि बेहतर नहीं होगी? इस तरह उपयोगकर्ता सूर्य के नीचे जाने तक ड्राफ्ट संशोधित कर सकते हैं और पृष्ठ प्रकाशित होने पर यह केवल एक अलग संस्करण दिखाता है? –