10
การจัดเก็บ JSON ในฐานข้อมูลเทียบกับการมีคอลัมน์ใหม่สำหรับแต่ละคีย์
ฉันกำลังใช้โมเดลต่อไปนี้สำหรับเก็บข้อมูลที่เกี่ยวข้องกับผู้ใช้ในตารางของฉัน - ฉันมี 2 คอลัมน์ - uid(คีย์หลัก) และmetaคอลัมน์ที่เก็บข้อมูลอื่นเกี่ยวกับผู้ใช้ในรูปแบบ JSON uid | meta -------------------------------------------------- 1 | {name:['foo'], | emailid:['foo@bar.com','bar@foo.com']} -------------------------------------------------- 2 | {name:['sann'], | emailid:['sann@bar.com','sann@foo.com']} -------------------------------------------------- นี่คือวิธีที่ดีกว่า (ประสิทธิภาพฉลาดการออกแบบที่ชาญฉลาด) กว่ารุ่นหนึ่งคอลัมน์ต่อทรัพย์สินที่ตารางจะมีคอลัมน์มากมายเช่นuid, ,nameemailid สิ่งที่ฉันชอบเกี่ยวกับโมเดลแรกคือคุณสามารถเพิ่มฟิลด์ได้มากเท่าที่จะทำได้โดยไม่มีข้อ จำกัด นอกจากนี้ฉันยังสงสัยว่าตอนนี้ฉันได้ใช้โมเดลแรกแล้ว ฉันจะทำเคียวรีอย่างไรเช่นฉันต้องการดึงข้อมูลผู้ใช้ทั้งหมดที่มีชื่อเช่น 'foo' คำถาม - วิธีใดที่จะดีกว่าในการจัดเก็บข้อมูลที่เกี่ยวข้องกับผู้ใช้ (จำไว้ว่าจำนวนของฟิลด์ไม่คงที่) ในฐานข้อมูลโดยใช้ - JSON หรือคอลัมน์ต่อฟิลด์ นอกจากนี้หากมีการนำโมเดลแรกไปใช้จะทำการสืบค้นฐานข้อมูลตามที่อธิบายไว้ข้างต้นได้อย่างไร ฉันควรใช้ทั้งสองโมเดลโดยการเก็บข้อมูลทั้งหมดซึ่งอาจถูกค้นหาโดยเคียวรีในแถวแยกต่างหากและข้อมูลอื่นใน JSON (เป็นแถวที่แตกต่างกัน) ปรับปรุง เนื่องจากไม่มีคอลัมน์มากเกินไปที่ฉันต้องทำการค้นหาจึงควรใช้ทั้งสองแบบหรือไม่ คีย์ต่อคอลัมน์สำหรับข้อมูลที่ฉันต้องการค้นหาและ JSON …