คำถามติดแท็ก query

12
ทำไมฐานข้อมูลเชิงสัมพันธ์ไม่สนับสนุนข้อมูลที่ส่งคืนในรูปแบบที่ซ้อนกัน?
สมมติว่าฉันกำลังสร้างบล็อกที่ฉันต้องการโพสต์และแสดงความคิดเห็น ดังนั้นฉันจึงสร้างสองตารางตาราง 'โพสต์' ที่มีคอลัมน์ 'id' จำนวนเต็มโดยอัตโนมัติและตาราง 'ความคิดเห็น' ที่มีคีย์ต่างประเทศ 'post_id' จากนั้นฉันต้องการเรียกใช้สิ่งที่อาจเป็นคิวรีที่พบบ่อยที่สุดของฉันซึ่งก็คือเรียกโพสต์และความคิดเห็นทั้งหมด ค่อนข้างใหม่สำหรับฐานข้อมูลเชิงสัมพันธ์วิธีที่ปรากฏชัดเจนที่สุดสำหรับฉันคือการเขียนแบบสอบถามที่มีลักษณะดังนี้: SELECT id, content, (SELECT * FROM comments WHERE post_id = 7) AS comments FROM posts WHERE id = 7 ซึ่งจะให้ ID และเนื้อหาของโพสต์ที่ฉันต้องการพร้อมกับแถวความคิดเห็นที่เกี่ยวข้องทั้งหมดที่บรรจุอย่างเป็นระเบียบในอาร์เรย์ (การแสดงแบบซ้อนที่คุณต้องการใช้ใน JSON) แน่นอนว่า SQL และฐานข้อมูลเชิงสัมพันธ์ไม่ทำงานเช่นนี้และสิ่งที่ใกล้เคียงที่สุดที่พวกเขาจะได้รับก็คือการเข้าร่วมระหว่าง 'โพสต์' และ 'ความคิดเห็น' ซึ่งจะส่งคืนข้อมูลซ้ำซ้อนที่ไม่จำเป็นจำนวนมาก ในทุก ๆ แถว) ซึ่งหมายความว่าเวลาในการประมวลผลจะถูกใช้ทั้งในฐานข้อมูลเพื่อรวมเข้าด้วยกันและบน ORM ของฉันเพื่อแยกวิเคราะห์และเลิกทำทั้งหมด แม้ว่าฉันจะสั่งให้ ORM …
46 database  sql  rdbms  query 

6
ฉันจะทำให้คิวรี SQL ที่ซับซ้อนเขียนง่ายขึ้นได้อย่างไร [ปิด]
ฉันพบว่ามันยากมากที่จะเขียนแบบสอบถาม SQL ที่ซับซ้อนที่เกี่ยวข้องกับการรวมในหลาย ๆ ตาราง (อย่างน้อย 3-4) และเกี่ยวข้องกับเงื่อนไขซ้อนหลาย ข้อความค้นหาที่ฉันถูกขอให้เขียนนั้นอธิบายได้ง่ายด้วยประโยคสองสามประโยค แต่อาจต้องใช้รหัสที่หลอกลวง ฉันค้นหาตัวเองบ่อยครั้งโดยใช้มุมมองชั่วคราวเพื่อเขียนข้อความค้นหาเหล่านี้ซึ่งดูเหมือนว่าเป็นเรื่องเล็ก ๆ น้อย ๆ คุณสามารถให้เคล็ดลับใดที่ฉันสามารถใช้เพื่อทำให้การสืบค้นที่ซับซ้อนเหล่านี้ง่ายขึ้น โดยเฉพาะอย่างยิ่งฉันจะแยกแบบสอบถามเหล่านี้ออกเป็นขั้นตอนที่ฉันต้องใช้เพื่อเขียนรหัส SQL ได้อย่างไร โปรดทราบว่าฉันเป็น SQL ฉันกำลังถูกขอให้เขียนเป็นส่วนหนึ่งของการบ้านสำหรับหลักสูตรฐานข้อมูลดังนั้นฉันไม่ต้องการซอฟต์แวร์ที่จะทำงานให้ฉัน ฉันต้องการเข้าใจรหัสที่ฉันเขียน รายละเอียดทางเทคนิคเพิ่มเติม: ฐานข้อมูลโฮสต์บนเซิร์ฟเวอร์ PostgreSQL ที่รันบนเครื่องโลคัล ฐานข้อมูลมีขนาดเล็กมาก: มีไม่เกินเจ็ดตารางและตารางที่ใหญ่ที่สุดมีน้อยกว่าประมาณ 50 แถว เคียวรี SQL กำลังถูกส่งผ่านไปยังเซิร์ฟเวอร์โดยผ่าน LibreOffice Base
42 sql  tips  query 

12
โปรแกรมเมอร์ที่มีประสบการณ์ควรรู้แบบสอบถามฐานข้อมูลหรือไม่ [ปิด]
มีโปรแกรมเมอร์จำนวนมากที่ยังเป็นผู้เชี่ยวชาญในการเขียน Query และการออกแบบฐานข้อมูล นี่ควรเป็นข้อกำหนดหลักสำหรับการเป็นโปรแกรมเมอร์ผู้เชี่ยวชาญหรือวิศวกรซอฟต์แวร์หรือไม่? แม้ว่าจะมีความคล้ายคลึงกันมากมายในวิธีการพัฒนาแบบสอบถามและรหัส แต่ความคิดเห็นส่วนตัวของฉันคือแบบสอบถามดูเหมือนจะมีโครงสร้างที่แตกต่างจากรหัสและอาจเป็นเรื่องยากสำหรับท่านอาจารย์ทั้งคู่ในเวลาเดียวกันเนื่องจากวิธีการที่แตกต่างกัน
35 database  query 

2
ทำไมฉันถึงต้องใช้ ElasticSearch ถ้าฉันใช้ฐานข้อมูลกราฟอยู่แล้ว?
ฉันไม่พบคำอธิบายเชิงลึกใด ๆ บนเว็บเกี่ยวกับการเปรียบเทียบระหว่างElasticSearchกับฐานข้อมูลกราฟ ทั้งสองได้รับการปรับให้เหมาะกับข้อมูลการสำรวจ ดูเหมือนว่า ElasticSearch จะได้รับการปรับให้เหมาะกับการวิเคราะห์ อย่างไรก็ตาม Neo4j ยังใช้ Lucene ในการจัดการดัชนีและคุณสมบัติ fulltext ทำไมฉันถึงต้องใช้ ElasticSearch ถ้าฉันใช้ฐานข้อมูลกราฟอยู่แล้ว? ในกรณีของฉันฉันใช้Neo4jเพื่อสร้างเครือข่ายสังคม ElasticSearch อาจนำประโยชน์อะไรมาให้จริง อัพเดท ---------- ฉันเพิ่งพบย่อหน้านี้: มีหลายกรณีที่ elasticsearch เป็นประโยชน์ กรณีการใช้งานบางอย่างเรียกร้องให้ชัดเจนกว่ากรณีอื่น ๆ รายการด้านล่างนี้เป็นงานบางส่วนที่ใช้งานการค้นหาด้วยยาง ค้นหาคำอธิบายผลิตภัณฑ์จำนวนมากเพื่อหาคู่ที่ดีที่สุดสำหรับวลีที่เฉพาะเจาะจง (พูดว่า "มีดเชฟ") และส่งคืนผลลัพธ์ที่ดีที่สุด จากตัวอย่างก่อนหน้านี้ทำลายแผนกต่างๆที่มี“ มีดเชฟ” ปรากฏขึ้น (ดูการเผชิญหน้าในภายหลังในหนังสือเล่มนี้) ค้นหาข้อความสำหรับคำที่ดูเหมือน "ฤดู" เติมคำในช่องค้นหาโดยอัตโนมัติตามคำที่พิมพ์บางส่วนโดยอ้างอิงจากการค้นหาที่ออกมาก่อนหน้าในขณะที่คิดคำสะกดผิด การจัดเก็บข้อมูล semi-Structured (JSON) จำนวนมากในรูปแบบที่กระจายด้วยระดับความซ้ำซ้อนที่ระบุในคลัสเตอร์ของเครื่องจักร อย่างไรก็ตามควรสังเกตว่าในขณะที่อีลาสติครีทรีทเป็นผู้แก้ปัญหาดังกล่าวได้ดีก็ไม่ใช่ทางเลือกที่ดีที่สุดสำหรับผู้อื่น มันไม่ดีเป็นพิเศษในการแก้ปัญหาซึ่งฐานข้อมูลเชิงสัมพันธ์ได้รับการปรับปรุง ปัญหาเช่นที่ระบุไว้ด้านล่าง การคำนวณจำนวนสินค้าที่เหลืออยู่ในสินค้าคงคลัง การหาผลรวมของรายการโฆษณาทั้งหมดในใบแจ้งหนี้ทั้งหมดที่ส่งออกในเดือนที่กำหนด การดำเนินการการดำเนินการสองรายการด้วยการสนับสนุนการย้อนกลับ การสร้างบันทึกที่รับประกันว่าจะไม่ซ้ำกันในหลาย …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.