ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: polarisz13 ที่ 05 พฤษภาคม 2016, 15:46:24



หัวข้อ: สอบถาม MongoDB ระหว่าง References กับ Embedded
เริ่มหัวข้อโดย: polarisz13 ที่ 05 พฤษภาคม 2016, 15:46:24
สวัสดีครับ, พอดีเพิ่งจะลองหันมาศึกษา MongoDB เพื่อไว้ใช้ แต่มีข้อสงสัย เรื่อง References กับ Embedded ครับ
กรณีเรามีตารางความสัมพันธ์แบบ M-M โดยปกติอย่างเช่น MySQL เราก็จะสร้าง 3 table ถูกไหมครับ
ถ้าเราใช้ References บน MongoDB อันนี้ก็ไม่น่ามีปัญหา แต่มีข้อสงสัยดังนี้ครับ

1. ความสัมพันธ์แบบ M-M บน MongoDB อย่างเช่น เรื่อง 1 Product มี M Category ถ้าเราเก็บแบบ Embedded เพื่อลดจำนวนการ Query จะเหมาะไหม ? หรือเหมาะกับ References มากกว่า

2. จากข้อ 1 ถ้าสามารถใช้ Embedded ได้ แล้วกรณี p_id=1 และ 2 มี cate_title=aaa เหมือนกัน ถ้ากรณีเราแก้ cate_title=aaa เป็น bbb แบบนี้เราก็ต้องไปไล่ Update ใน Documents ทุกอันเลยรึเปล่า เลยเกิดความสงสัย ถ้ามี 1M Products จะต้องไปไล่ Update Category ของ 1M Products เลยรึเปล่าน่ะครับ ?

ถ้าใช้คำถามไม่ถูกต้อง ขออภัยไว้ล่วงหน้าด้วยครับ พอดีสับสนนิดหน่อย กับ Embedded แบบ M-M เพราะปกติ จะใช้ Relation,References,FK ใน MySQL ครับ
ขอบุคณครับ


หัวข้อ: Re: สอบถาม MongoDB ระหว่าง References กับ Embedded
เริ่มหัวข้อโดย: icez ที่ 05 พฤษภาคม 2016, 16:21:06
บางส่วนเป็น reference บางส่วนเป็น embedded คัรบ แล้วแต่สถานการณ์

อย่างกรณี category ควรเป็น reference มากกว่าครับ แต่ถ้าอย่าง product review อะไรงี้ อาจทำเป็น embedded ไว้ใน product ดีกว่า


หัวข้อ: Re: สอบถาม MongoDB ระหว่าง References กับ Embedded
เริ่มหัวข้อโดย: polarisz13 ที่ 05 พฤษภาคม 2016, 23:24:33
บางส่วนเป็น reference บางส่วนเป็น embedded คัรบ แล้วแต่สถานการณ์

อย่างกรณี category ควรเป็น reference มากกว่าครับ แต่ถ้าอย่าง product review อะไรงี้ อาจทำเป็น embedded ไว้ใน product ดีกว่า

โอ้ว! ขอบคุณมากครับ +1 ให้พี่เรียบร้อยแล้วครับ นั่งสับสน Search มาหลายวัน ผมก็คิดอยู่ว่า Embedded มันดีในเรื่องการลด Query ก็จริง แต่มันน่าจะมีข้อยกเว้นบางกรณีอยู่ ที่ไม่เหมาะสม
อย่าง Product Reviews ที่พี่ยกตัวอย่าง อันนี้ Embedded ได้ไม่น่ามีปัญหา เพราะมันไม่ไปอยู่ใน Product อื่น จะอยู่เฉพาะใน Product นั้นๆเท่านั้น

โอเคครับ เรื่มกระจ่างขึ้น ถ้าใครมีอะไรแนะนำเพิ่มเติม References กับ Embedded ขอรบกวนด้วยครับ