5

हम SQL सर्वर 2016 के साथ सोर्सिंग का उपयोग करते हैं। हमारे पास कुल ग्राहक उत्पाद एप्लिकेशन है, प्रत्येक को CustomerId द्वारा लेबल किया गया है और ईवेंट स्टोर में एक सिंगल गाइड लाइन आइटम प्राप्त होता है। यह इवेंट स्टोर स्टोर लिखने के लिए प्राथमिक पहचानकर्ता है। उत्पाद अनुप्रयोग कई अलग-अलग संबंधपरक चीजों के साथ आता है, (जिनके पास गाइड नहीं हैं लेकिन प्राकृतिक कुंजी हैं) प्रत्येक ग्राहक के पास एकाधिक पते, खाते, एकाधिक खरीद आदेश होते हैं। लिखने की घटना की दुकान किसी भी तरह से एक रिलेशनल डेटाबेस टेबल पर मैप की जाएगी जिसे हम चुनते हैं। डेटाबेस में, हम प्राकृतिक चाबियों की बजाय सरोगेट कुंजी से जुड़ने का प्रयास करते हैं।इवेंट सोर्सिंग और एसक्यूएल सर्वर एकाधिक रिलेशनल टेबल

क्या सरोगेट कुंजी गिड्स हो सकती है, या क्या हम त्वरित जुड़ने के लिए इंटीग्रर्स (शायद पहचान) का उपयोग कर सकते हैं?

लिखें घटना की दुकान में केवल प्राथमिक पहचानकर्ता याद रखें ग्राहक आईडी app से एक Guid (साथ तालिका स्तंभ के गुच्छा जिम्मेदार बताते हैं हम मॉडल बनाना चाहते हैं बड़ा json ब्लॉब) है, लेकिन बच्चे के सम्बन्ध तालिकाओं जो पढ़ा मॉडल में भी बदल सकते हैं , लिखें ईवेंट स्टोर में बाल ग्रिड नहीं है।

+0

सीक्यूआरएस का पूरा बिंदु पढ़ने के लिए अनुकूलित मॉडल को अनुकूलित करना है। मतलब - denormalised, नहीं, या बहुत कम, जुड़ता है, और इतने पर। इसके शीर्ष पर आप जो भी चाहते हैं वह कर सकते हैं, केवल यह ध्यान रखना होगा कि आप ईवेंट के साथ पठित मॉडल को अपडेट कर रहे हैं ताकि कुल आईडी को पढ़ा जा सके और पढ़ने के पक्ष में रखा जा सके। –

+0

यह दिलचस्प है, मैं अपने सभी 50 रिलेशनल टेबलों में कुल समेकित आईडी गाइड रखूंगा (इस मामले में, हम ग्राहक आईडी को 5- टेबल में रखेंगे), धन्यवाद, दुख की बात है डेटा एसक्यूएल पढ़ने वाले मॉडल पर पुस्तकें मौजूद नहीं हैं , इसलिए वास्तुकला OLTP से अलग है; अद्वितीय और विदेशी बाधाओं को हटाने के लिए भी सीखा, क्योंकि वे डोमेन पक्ष – AppleBook89

+0

में लागू होते हैं, मुझे लगता है कि इनमन मॉडल के बारे में मुझे लगता है कि यह मॉडल के लिए लचीलापन की अनुमति देता है और जिस तरह से हम चाहते हैं उससे संबंधित है, उदाहरण के लिए यदि मैं एक विशिष्ट एसक्यूएल फ़ंक्शन चलाने के लिए पहले से ही हूं, जो पहले से ही है प्रीऑन, बनाम बड़ी चौड़ी एकाधिक पंक्ति किमबाल मॉडल पर एक अलग फ़ंक्शन चला रहा है, हालांकि, मैं हमारी टीम से दोनों को करने के लिए कहूंगा, धन्यवाद – AppleBook89

उत्तर

3

हाँ, आप उपयोग कर सकते हैं जो कुछ भी आप एक विशेष read model कार्यान्वयन में की जरूरत है, लेकिन आप खाते है कि एक read model किसी भी समय पर Rebuildable होना चाहिए में लेने की जरूरत। इसलिए, जब read model फिर से बनाया गया है तो यह अन्य सरोगेट आईडी का उपयोग कर सकता है या आप इसे इस तरह से कार्यान्वित करते हैं कि प्रत्येक बार जब भी वही आईडी मिलती है (मैं Autoincrement सुविधा का जिक्र कर रहा हूं)।

पीएस आप अपने डेटा को denormalize क्यों नहीं करते हैं? event sourcingread model में उन्हें तेज़ी से बनाने के बजाय शामिल होने से बचने के लिए आम है।

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