การใช้งานทั่วไป
หากคุณมีโครงสร้างข้อมูลที่ไม่ได้กำหนดไว้อย่างชัดเจนในเวลาที่คุณสร้างระบบ ฉันมักจะเก็บการตั้งค่าผู้ใช้ใน nosql เช่น อีกตัวอย่างหนึ่งคือระบบที่ผู้ใช้จำเป็นต้องสามารถเพิ่มเขตข้อมูลที่รันไทม์ - เจ็บปวดมากใน RDBMS และสายลมใน NoSQL
ถ้าโครงสร้างโมเดลของคุณส่วนใหญ่อยู่กึ่งกลางวัตถุวัตถุหนึ่งหรือสองสามโมเดลและความสัมพันธ์ส่วนใหญ่เป็นวัตถุลูกของวัตถุโมเดลหลัก ในกรณีนี้คุณจะพบว่าคุณจะต้องเข้าร่วมจริงน้อยมาก ฉันพบว่าระบบการจัดการที่ติดต่อสามารถนำไปใช้งานได้เป็นอย่างดีใน nosql เช่น บุคคลสามารถมีหลายที่อยู่โทรศัพท์และอีเมล แทนที่จะทำให้พวกเขาแต่ละคนลงในตารางแยกพวกเขาทั้งหมดกลายเป็นส่วนหนึ่งของรูปแบบเดียวกันและคุณมีวัตถุหนึ่งคน
หากคุณต้องการได้รับประโยชน์จากการทำคลัสเตอร์ข้อมูลของคุณในหลายเซิร์ฟเวอร์แทนที่จะมีเซิร์ฟเวอร์แบบเสาหินเดียวซึ่ง RDBMS ต้องการโดยทั่วไป
เก็บเอาไว้. แม้ว่าคุณต้องการติดกับ RDBMS เป็นฐานข้อมูลหลักของคุณ แต่ก็มีประโยชน์ในการใช้ฐานข้อมูล NoSQL สำหรับแคชผลลัพธ์แบบสอบถามหรือเก็บข้อมูลเช่นตัวนับ
จัดเก็บเอกสาร หากคุณต้องการจัดเก็บเอกสารที่สอดคล้องกันในฐานข้อมูลบางส่วนของฐานข้อมูล NoSQL (เช่น MongoDB) มีความเชี่ยวชาญในการจัดเก็บเอกสารเหล่านั้น
สิ่งที่เกี่ยวกับการเข้าร่วม?
จริงๆแล้วสิ่งที่ไม่เข้าร่วมฟังก็ค่อนข้างน่ากลัวสำหรับฉันเช่นกันในตอนแรก แต่เคล็ดลับคือการหยุดคิดใน SQL คุณต้องคิดจริงกับวัตถุที่คุณมีในหน่วยความจำเมื่อคุณเรียกใช้แอปพลิเคชันของคุณ สิ่งเหล่านี้ควรถูกบันทึกลงในฐานข้อมูล NoSQL มากขึ้นหรือน้อยลง
เนื่องจากคุณสามารถจัดเก็บกราฟวัตถุแบบเต็มของคุณได้ด้วยวัตถุลูกความจำเป็นในการเข้าร่วมส่วนใหญ่จึงถูกกำจัด และหากคุณพบว่าคุณต้องการคุณจะต้องกัดสัญลักษณ์แสดงหัวข้อย่อยและดึงวัตถุทั้งสองและเข้าร่วมในรหัสแอปพลิเคชันของคุณ
โชคดีที่ไดรเวอร์ส่วนใหญ่สามารถทำการเข้าร่วมให้คุณได้หากคุณตั้งค่าสคีมาของคุณไว้
สำหรับการอ่านเพิ่มเติมที่จริงผมขอแนะนำให้มาร์ตินฟาวเลอร์