วิธีสร้างคีย์เฉพาะในฐานข้อมูล NoSQL

เผยแพร่แล้ว: 2022-11-23

การสร้างคีย์เฉพาะในฐานข้อมูล NoSQL อาจเป็นเรื่องที่ท้าทาย แต่มีบางวิธีที่สามารถใช้เพื่อให้แน่ใจว่าคีย์ของคุณไม่ซ้ำกันเท่าที่จะเป็นไปได้ วิธีหนึ่งคือการใช้ UUID ซึ่งเป็น Universally Unique Identifier นี่คือตัวเลข 128 บิตที่ใช้ระบุออบเจกต์โดยไม่ซ้ำกัน อีกวิธีหนึ่งคือการใช้แฮช SHA-256 ซึ่งเป็นตัวเลข 256 บิตที่สร้างขึ้นโดยอัลกอริทึมการแฮช

ฐานข้อมูลรูปแบบคู่ค่าคีย์จะเก็บข้อมูล ของคุณไว้ในคีย์เฉพาะโดยขึ้นอยู่กับประเภทของข้อมูล เป็นวิธีแก้ปัญหาที่ยอดเยี่ยมสำหรับปัญหาต่างๆ มากมาย ตราบใดที่คุณรู้ว่าข้อมูลของคุณอยู่ที่ไหน ฐานข้อมูลรูปแบบคีย์/ค่าเป็นที่ที่ดีในการจัดเก็บข้อมูลของคุณ เราจะอธิบายตัวอย่างเพื่อช่วยคุณเริ่มต้น การใช้ฐานตัวเลขที่ขยายขึ้นเรื่อยๆ เพื่อให้แน่ใจว่าใช้เพียงคีย์เดียว รูปแบบ Counter-ID จะพยายามเก็บคีย์ที่ไม่ซ้ำกันไว้ เมื่อคุณต้องการทราบจำนวนอย่างรวดเร็ว นี่เป็นรูปแบบที่ยอดเยี่ยมสำหรับกรณีการใช้งาน นอกจากนี้ยังมีประโยชน์ในการช่วยให้คุณสามารถแทรกเอกสารได้อย่างรวดเร็ว

คุณสร้างคีย์เฉพาะสำหรับค่าของคุณโดยใช้ Globally Unique Identification หรือ UUNTS ในรูปแบบ GUID/UUID สำหรับการคีย์ข้อมูล ส่วนที่ดีที่สุดของการค้นหาคือการรวมคีย์ที่คาดเดาได้และรูปแบบตัวนับ ID หรือ GUID/UUID รูปแบบประกอบด้วยคู่คีย์/ค่าขนาดเล็กหลายคู่ที่ทำหน้าที่เป็นตัวชี้ไปยังค่าหลัก มีวิธีอื่นๆ อีกมากมายในการบดขยี้ข้อมูลของคุณ แต่ฉันเชื่อว่าวิธีนี้ดีที่สุดสำหรับฉัน

การสร้างดัชนีจากคอลเล็กชันฐานข้อมูลเป็นวิธีที่ดี เมธอด createIndex() ต้องมีตัวเลือกเฉพาะที่ตั้งค่าเป็นจริง

เมื่อเราต้องการเพิ่มคีย์เฉพาะให้กับคอลัมน์ในตารางที่มีอยู่ เราสามารถใช้คำสั่งนี้ในการทำเช่นนั้นได้ หากต้องการเพิ่มคีย์เฉพาะ ให้ใช้ไวยากรณ์ต่อไปนี้สำหรับคำสั่ง ALTER TABLE: ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list); แก้ไขตาราง table_name เพิ่มข้อ จำกัด ข้อ จำกัด ชื่อเฉพาะ (column_list);

ฐานข้อมูล Nosql มีคีย์หลักหรือไม่

ที่มารูปภาพ : dzone

ทุกแถวในตารางมีคีย์ของตัวเอง Oracle NoSQL Database Cloud ใช้คีย์หลักเพื่อดึงข้อมูลแถวเฉพาะสำหรับการดำเนินการ CRUD ซึ่งในกรณีนี้ทั้งแถวจะถูกอ่านหรือแก้ไข

เราจะมาดูรายละเอียดเกี่ยวกับประโยชน์ของฐานข้อมูล NoSQL ในหัวข้อต่อไปนี้ ข้อได้เปรียบที่สำคัญที่สุดของฐานข้อมูล NoSQL คือความสามารถในการทำงานเร็วกว่าฐานข้อมูลแบบเดิม นอกเหนือจากการเข้าถึงที่สะดวกกว่าแล้ว ยังไม่ต้องการพลังการประมวลผลในปริมาณที่เท่ากันกับฐานข้อมูลเชิงสัมพันธ์อีกด้วย นอกจากนี้ ฐานข้อมูล NoSQL ยังมีความยืดหยุ่นมากขึ้นและอนุญาตให้มีการจัดเก็บข้อมูลแบบไดนามิกและยืดหยุ่นมากขึ้น มีตัวเลือกมากมายในการเลือกฐานข้อมูล NoSQL ที่เหมาะสม MongoDB, Cassandra และ DynamoDB เป็นสามฐานข้อมูลที่ได้รับความนิยมสูงสุด มีฐานข้อมูลจำนวนมากที่พร้อมใช้งาน ซึ่งแต่ละฐานข้อมูลมีข้อดีและข้อเสียของตัวเอง ดังนั้นการเลือกฐานข้อมูลที่เหมาะสมสำหรับความต้องการเฉพาะขององค์กรจึงเป็นสิ่งสำคัญ การใช้ฐานข้อมูล NoSQL ในโซลูชันการจัดเก็บข้อมูลขององค์กรถือเป็นข้อได้เปรียบในตัวมันเอง เร็วกว่า มีประสิทธิภาพมากกว่า และยืดหยุ่นกว่าฐานข้อมูลแบบเดิม ทำให้เหมาะสำหรับการใช้งานที่หลากหลาย

คีย์เฉพาะใน Cosmos Db คืออะไร?

ที่มารูปภาพ: adamtheautomator

สามารถเพิ่มรหัสเฉพาะลงในคอนเทนเนอร์ Azure Cosmos DB เพื่อเพิ่มชั้นของความสมบูรณ์ของข้อมูล เมื่อคุณสร้างคอนเทนเนอร์ Azure Cosmos DB คุณจะสร้าง นโยบายคีย์เฉพาะ คีย์เฉพาะถูกใช้เพื่อให้แน่ใจว่ามีค่าที่แตกต่างกันตั้งแต่หนึ่งค่าขึ้นไปในโลจิคัลพาร์ติชัน นอกจากนี้ คีย์พาร์ติชันแต่ละคีย์สามารถรับประกันได้ว่าจะไม่ซ้ำกัน

ใน MongoDB จะมีการระบุคีย์หลักโดยใช้คำหลักดัชนีตามด้วยชื่อดัชนี ตัวอย่างเช่น ถ้าคุณต้องการสร้างดัชนีในฟิลด์รหัส จะใช้คำสั่งต่อไปนี้ คุณสามารถ code_index ใน mongoDB คุณสามารถสร้างดัชนีชื่อ code_index สำหรับเอกสารทั้งหมดในคอลเลกชันของคุณโดยใช้วิธีนี้ หากต้องการใช้ดัชนี เพียงสั่งคำสั่งต่อไปนี้: แทรก () ลงใน ไฟล์ mongodb ในที่อยู่ '123456' มีรหัสอยู่ '); (); หรือที่เรียกว่า ' เมื่อพยายามแทรกเอกสารที่มีค่ารหัสเดียวกัน MongoDB จะส่งคืนข้อผิดพลาด ด้วยสิ่งนี้ จึงเป็นไปได้ที่จะส่งคืนเอกสารทั้งหมดในคอลเลกชัน วิธีนี้มีวัตถุประสงค์เพื่อจับคู่รหัสกับเรกคอร์ด แต่ละระเบียนในตารางจะถูกระบุโดยใช้คีย์เฉพาะ ต้องมีคีย์หลักในแต่ละตาราง ในเซิร์ฟเวอร์ SQL คุณจะต้องกำหนดคีย์หลักหลังชื่อคอลัมน์เป็น 'คีย์หลัก' คำหลักดัชนีตามด้วยชื่อของดัชนีใน MongoDB เพื่อระบุคีย์หลัก ตัวอย่างเช่น หากคุณต้องการสร้างดัชนีในช่องรหัส คุณจะใช้คำสั่งต่อไปนี้: คุณสามารถค้นหา Code_index ได้ในการกำหนดค่า MongoDB Code_index ซึ่งเป็นดัชนีที่มีเอกสารทั้งหมดในคอลเลกชันของคุณ จะถูกสร้างขึ้นจากการดำเนินการนี้


อะไรทำให้ Mongobb มีเอกลักษณ์เฉพาะตัว?

MongoDB นั้นไม่เหมือนใครเพราะเป็นระบบฐานข้อมูลเชิงเอกสารที่ทรงพลัง มีคุณสมบัติการค้นหาตามดัชนีที่ทำให้การดึงข้อมูลทำได้ง่ายและรวดเร็ว MongoDB ยังนำเสนอฟีเจอร์ความสามารถในการขยายขนาด ซึ่งช่วยให้สามารถจัดการข้อมูลขนาดใหญ่ได้

MongoDB ใช้ข้อจำกัดเฉพาะเพื่อป้องกันค่าที่ซ้ำกันในดัชนีของฟิลด์ที่จัดทำดัชนี สิ่งนี้ถูกบังคับใช้เป็นข้อจำกัดเฉพาะบนฟิลด์ the_id ใน MongoDB เมื่อมีการแทรกข้อมูลใหม่ การพยายามใส่ค่าเดียวกันสำหรับ คีย์ที่ทำดัชนี เดียวกันจะส่งผลให้เกิดปัญหาความเข้ากันได้ MongoDB ขาดฟิลด์ดัชนีหนึ่งฟิลด์ ซึ่งหมายความว่าสามารถจัดเก็บเอกสารได้เพียงหนึ่งเอกสารเท่านั้น ในกรณีของค่า Null เอกสารจะใช้ไม่ได้อีกต่อไปหากไม่มีข้อมูลหรือค่าเฉพาะสำหรับคีย์ และหากไม่มีข้อมูลหรือค่าเฉพาะสำหรับคีย์ที่ไม่แน่นอนใดๆ ก็จะใช้ไม่ได้อีกต่อไป เราจะใช้ข้อจำกัดเฉพาะในชื่อเพื่อให้แน่ใจว่าจะไม่ซ้ำกันในตัวอย่างนี้ ทำให้เกิดหลักฐานการแทรกที่ซ้ำกัน MongoDB Unique เป็นฐานข้อมูลที่ทำดัชนีเอกสารทั้งหมดในช่องอีเมลและจัดเก็บไว้ในฐานข้อมูลเดียว

ในตัวอย่างนี้ เราจะค้นหาบันทึกตามชื่อ: Sanket1 จากนั้นอัปเดตด้วยรหัสอีเมล ซึ่ง $set จะเพิ่มเป็นฟิลด์ในเอกสาร เราถือว่าการดำเนินการแทรกจะล้มเหลวและข้อผิดพลาดของค่าที่ซ้ำกันจะเกิดขึ้นอันเป็นผลมาจากการดำเนินการนี้ ข้อความรวบรวมข้อผิดพลาดของคีย์ซ้ำปรากฏในดัชนี test.educba: email_1 dup key

MongoDB ซึ่งเป็น ระบบฐานข้อมูลที่ทรงพลัง มี ความโดดเด่นตรงที่อนุญาตให้จัดการข้อมูลด้วยวิธีที่ไม่เหมือนใคร เป็นไปได้ที่จะประหยัดเวลาและความพยายามโดยใช้ฟังก์ชัน different() เพื่อให้แน่ใจว่าเรกคอร์ดทั้งหมดในคอลเล็กชันไม่ซ้ำกัน ควรใช้ตัวเลือก “unique:true” หากคุณต้องการแทรกบันทึกลงในคอลเลกชัน MongoDB เรกคอร์ดทั้งหมดในคอลเลกชันนั้นไม่ซ้ำกัน ซึ่งเป็นประโยชน์เพราะช่วยประหยัดเวลาและความพยายาม

รหัสเฉพาะของ Cosmos Db

คีย์เฉพาะของ cosmos db เป็นคีย์ที่ระบุรายการในฐานข้อมูล cosmos db โดยไม่ซ้ำกัน ใช้เพื่อให้แน่ใจว่าไม่มีสองรายการในฐานข้อมูลที่มีรหัสเดียวกัน

สร้าง Mongodb ดัชนีที่ไม่ซ้ำใคร

ใน MongoDB ดัชนีเฉพาะบนคีย์จากน้อยไปหามากจะบังคับให้ ค่าคีย์ ไม่ซ้ำกันในคอลเล็กชัน ดัชนีเฉพาะบนคีย์จากมากไปหาน้อยบังคับให้ค่าคีย์ไม่ซ้ำกันในลำดับย้อนกลับ กล่าวคือ ค่าจะไม่ซ้ำกันโดยเริ่มจากค่าสูงสุดไปยังค่าต่ำสุด

ค่าของฟิลด์รับประกันว่าจะไม่ซ้ำกันในชุดเอกสารโดยใช้ดัชนีเฉพาะของ MongoDB หากต้องการสร้างดัชนีเฉพาะ ให้ใช้เมธอด createIndex() ซึ่งมีตัวเลือกเป็น *เฉพาะ: จริง สร้างดัชนีโดยใช้วิธีการต่อไปนี้: db.collection.createIndex( field: 1, name: Johny, email: “jane”, number: 1099, dup key: Johny ); ดัชนีเฉพาะมีมากกว่าหนึ่งฟิลด์และตรวจสอบให้แน่ใจว่า หากต้องการสร้างดัชนีเฉพาะ จะมีการระบุฟิลด์เฉพาะในข้อมูลจำเพาะของดัชนี เช่น this: ใน ฟิลด์ db.collection.createIndex ฉันต้องการใส่ดัชนี ผลลัพธ์เป็นจริง มันคือ: lat__long_1 ที่อยู่: 37.335480 ยาว: -121.893028 อีเมล: '[ป้องกันอีเมล]'

วิธีสร้างฟิลด์ที่ไม่ซ้ำใครใน Mongodb

ในการสร้างฟิลด์เฉพาะใน MongoDB คุณจะต้องสร้างดัชนีเฉพาะในฟิลด์นั้น ในการทำเช่นนั้น คุณสามารถใช้เมธอด createIndex() ในคอลเล็กชัน อาร์กิวเมนต์แรกของเมธอด createIndex() คือชื่อของฟิลด์ที่จะจัดทำดัชนี และอาร์กิวเมนต์ที่สองคืออ็อบเจ็กต์ตัวเลือก ในออบเจกต์ตัวเลือก คุณจะต้องระบุ {unique: true}

เนื่องจาก MongoDB ไม่อนุญาตให้สร้างข้อจำกัด เราจึงต้องใช้ดัชนีเฉพาะของเราเอง ไม่สามารถใช้ คุณสมบัติเฉพาะ เพื่อเปิดใช้ดัชนีได้ เนื่องจากคุณสมบัติไม่ซ้ำกันโดยค่าเริ่มต้น เราสามารถใช้คำอธิบายประกอบ @Indexed เพื่อระบุว่าฟิลด์มีดัชนีหรือไม่ ถ้าเราต้องการดัชนีเฉพาะที่ประกอบด้วยหลายค่า เราต้องสร้างดัชนีผสมก่อน เราสามารถทำได้โดยใช้คำอธิบายประกอบ @CompoundIndex เพื่ออธิบายประเภทที่กำหนดเองในฟิลด์ของประเภทที่กำหนดเอง วิธีนี้จะแยกคำจำกัดความของดัชนีและอนุญาตให้เราแทรกหรือลบฟิลด์ออกจาก SaleId โดยไม่ต้องสร้างหรืออัปเดตดัชนีของเราใหม่