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

แท็กนี้สำหรับคำถามฐานข้อมูลทั่วไป หากคำถามของคุณเฉพาะกับ SQL ให้ใช้แท็กนั้นแทน

6
ควรใช้ Latin-1 มากกว่า UTF-8 เมื่อพูดถึงการกำหนดค่าฐานข้อมูลหรือไม่?
เรากำลังใช้งาน MySQL ที่ บริษัท ที่ฉันทำงานอยู่และเราสร้างทั้งแอปพลิเคชันสำหรับลูกค้าและภายในโดยใช้ Ruby on Rails เมื่อฉันเริ่มทำงานที่นี่ฉันพบปัญหาที่ฉันไม่เคยพบมาก่อน ฐานข้อมูลบนเซิร์ฟเวอร์ที่ใช้งานถูกตั้งค่าเป็น Latin-1 ซึ่งหมายความว่า MySQL มีข้อผิดพลาดเมื่อใดก็ตามที่มีการป้อนข้อมูลของผู้ใช้ที่ผู้ใช้คัดลอกและวางอักขระ UTF-8 เจ้านายของฉันเรียกว่า "ตัวละครที่ไม่ดี" เหล่านี้เนื่องจากส่วนใหญ่เป็นตัวละครที่ไม่สามารถพิมพ์ได้และบอกว่าเราต้องถอดมันออก ฉันได้พบวิธีในการทำเช่นนี้ แต่ในที่สุดเราก็ลงเอยด้วยสถานการณ์ที่จำเป็นต้องใช้อักขระ UTF-8 นอกจากนี้ยังเป็นเรื่องยุ่งยากโดยเฉพาะอย่างยิ่งเนื่องจากดูเหมือนว่าทางออกเดียวที่ฉันเคยอ่านเกี่ยวกับปัญหานี้คือการตั้งค่าฐานข้อมูลเป็น UTF-8 (เหมาะสมกับฉัน) อาร์กิวเมนต์เดียวที่ฉันได้ยินมาสำหรับการใช้ภาษาละติน -1 คือการอนุญาตให้ใช้ตัวอักษร UTF-8 ที่ไม่สามารถพิมพ์ได้สามารถทำให้การค้นหาข้อความ / ข้อความแบบเต็มใน MySQL นี่เป็นเรื่องจริงหรือ มีเหตุผลอื่นอีกหรือไม่ที่เราควรใช้ Latin-1 แทน UTF-8 ฉันเข้าใจว่ามันยอดเยี่ยมและแพร่หลายมากขึ้น

8
สร้างระบบฐานข้อมูลของฉันเอง [ปิด]
ฉันต้องการเรียนรู้วิธีการทำงานของฐานข้อมูลเพื่อใช้งานได้อย่างมีประสิทธิภาพมากขึ้นและวิธีการเรียนรู้ของฉันก็คือการทำ ฉันต้องการสร้างระบบฐานข้อมูลของตัวเอง ฉันไม่ได้หมายถึงการสร้างฐานข้อมูลเทียมที่จะใช้แบบสอบถามเพื่อแยกไฟล์ นี่จะเป็นเพียงระบบไฟล์ที่มีภาษาคิวรี ฉันกำลังพูดถึงโครงสร้างที่แท้จริงของโปรแกรมฐานข้อมูล และเนื่องจากสิ่งที่ฉันมีอยู่ในใจคือไม่เกี่ยวข้องหรือไม่เกี่ยวข้องกับเอกสาร (เป็น "โหนดที่มุ่งเน้น" หากยังมีอยู่) ฉันจะต้องมีทรัพยากรใด ๆ ที่จะเป็นนามธรรมและระดับสูงที่สุดเท่าที่จะทำได้ ดังนั้นฉันจะไปเกี่ยวกับการสร้างที่ได้อย่างไร ฉันสามารถอ่านทรัพยากร / บทช่วยสอน / หนังสือใดให้เข้าใจ ภาษาไม่สำคัญเลยแม้แต่น้อย ตามหลักการแล้วรหัสนั้นจะเป็นรหัสเทียมเพื่อแสดงแนวคิดไม่ผูกติดกับภาษาใดภาษาหนึ่ง แต่จะทำทุกอย่าง ฉันไม่สามารถพบสิ่งใดในเรื่องบน google (เนื่องจากฉันไม่รู้หนังสือในเรื่องนี้บางทีฉันอาจไม่ได้เข้าสู่การค้นหาที่ถูกต้อง) หากทรัพยากรดังกล่าวไม่พร้อมใช้งานฉันคาดเดาบางอย่างเกี่ยวกับวิธีการสร้างลูกค้าอย่างน้อยก็จะเป็นขั้นตอนในทิศทางที่ถูกต้อง

15
เพื่อนร่วมงานเปลี่ยนชื่อข้อความค้นหาทั้งหมดของฉัน [ปิด]
ฉันไม่รู้ว่าฉันควรจะหงุดหงิดมากหรืออะไร ฉันสร้างแบบสอบถามมากกว่า 300 รายการสำหรับฐานข้อมูลขนาดใหญ่และพัฒนาแผนการตั้งชื่อเพื่อที่ฉันจะได้ค้นพบในภายหลัง ไม่มีใครในออฟฟิศของฉันรู้วิธีสร้างคิวรี แต่ฉันเข้ามาเมื่อวานนี้เพื่อพบว่าพวกเขาทั้งหมดถูกเปลี่ยนชื่อ ตอนนี้ฉันมีเวลายากมากในการค้นหาสิ่งต่าง ๆ และฉันพยายามที่จะคิดออกว่าจะทำอย่างไร ฉันพูดกับคนที่รับผิดชอบและเธอก็วัดผลทุกสิ่ง เธอบอกว่าเธอเปลี่ยนชื่อพวกเขาเพื่อให้เธอสามารถค้นหาได้ง่ายขึ้น น่าเสียดายที่ฉันเป็นคนเดียวที่รู้วิธีสร้างแก้ไขและดูแลรักษาและเหตุผลเดียวที่เธอต้องการค้นหาพวกเขาคือการทดสอบข้อความค้นหา อนุสัญญาการตั้งชื่อใหม่ไม่สมเหตุสมผลเลยและฉันรู้สึกว่าเราก้าวไปข้างหลังในกระบวนการพัฒนา สิ่งที่ฉันพยายามคิดก็คือ: 1) ฉันทำมากไปไหม? 2) วิธีที่ดีที่สุดในการจัดการกับสิ่งนี้คืออะไร? ฉันเกลียดที่จะพูดถึงเรื่องนี้กับเจ้านายของฉัน แต่หลังจากพูดคุยกับเพื่อนร่วมงานของฉันเมื่อวานนี้ฉันสามารถบอกได้ว่าเธอรู้สึกเหมือนเธอไม่ได้ทำอะไรผิด
63 database  sql  access 

15
มีเหตุผลใดที่จะไม่ไปจาก Javascript ฝั่งไคลเอ็นต์โดยตรงกับฐานข้อมูลหรือไม่?
สำเนาซ้ำที่เป็นไปได้: เขียนแอปพลิเคชัน“ เซิร์ฟเวอร์น้อยกว่า” บนเว็บ ดังนั้นสมมติว่าฉันจะสร้างโคลน Exchange Stack และฉันตัดสินใจที่จะใช้สิ่งที่ต้องการ CouchDB เป็นที่เก็บแบ็กเอนด์ของฉัน หากฉันใช้การพิสูจน์ตัวตนในตัวและการอนุญาตระดับฐานข้อมูลมีเหตุผลใดที่จะไม่อนุญาตให้ Javascript ฝั่งไคลเอ็นต์เขียนโดยตรงไปยังเซิร์ฟเวอร์ CouchDB ที่เปิดเผยสู่สาธารณะ เนื่องจากนี่เป็นแอปพลิเคชั่น CRUD และตรรกะทางธุรกิจประกอบด้วย "ผู้เขียนเท่านั้นที่สามารถแก้ไขโพสต์ของพวกเขา" ฉันไม่เห็นความต้องการมากที่จะมีเลเยอร์ระหว่างสิ่งที่ฝั่งไคลเอ็นต์และฐานข้อมูล ฉันเพียงแค่ใช้การตรวจสอบด้าน CouchDB เพื่อให้แน่ใจว่าไม่มีใครใส่ข้อมูลขยะและตรวจสอบให้แน่ใจว่ามีการตั้งค่าการอนุญาตอย่างถูกต้องเพื่อให้ผู้ใช้สามารถอ่านข้อมูล _user ของตนเองได้ การเรนเดอร์จะทำได้โดยฝั่งไคลเอ็นต์โดยบางสิ่งเช่น AngularJS โดยพื้นฐานแล้วคุณสามารถมีเซิร์ฟเวอร์ CouchDB และหน้าแบบ "คงที่" และคุณก็พร้อมที่จะไป คุณไม่จำเป็นต้องมีการประมวลผลด้านเซิร์ฟเวอร์ใด ๆ เพียงแค่สิ่งที่สามารถแสดงหน้า HTML ได้ การเปิดฐานข้อมูลของฉันสู่โลกดูเหมือนผิด แต่ในสถานการณ์นี้ฉันไม่สามารถคิดได้ว่าทำไมตราบใดที่การตั้งค่าการอนุญาตถูกต้อง มันขัดกับสัญชาตญาณของฉันในฐานะนักพัฒนาเว็บ แต่ฉันไม่สามารถคิดได้ด้วยเหตุผลที่ดี เหตุใดจึงเป็นความคิดที่ไม่ดี แก้ไข: ดูเหมือนว่ามีการสนทนาที่คล้ายกันที่นี่: การเขียนเว็บ "เซิร์ฟเวอร์น้อยกว่า" แอปพลิเคชัน แก้ไข: การอภิปรายที่น่าประทับใจจนถึงตอนนี้และฉันขอขอบคุณข้อเสนอแนะของทุกคน! ฉันรู้สึกว่าฉันควรเพิ่มสมมติฐานทั่วไปสองสามข้อแทนที่จะเรียกเฉพาะ …

7
เหตุใดโมเดลเชิงสัมพันธ์สำหรับฐานข้อมูลจึงมีความสำคัญ
ฉันกำลังเข้าใกล้โครงการที่ฉันจะต้องใช้ฐานข้อมูลกับเจ้านายของฉัน เราเริ่มต้นเพียงเล็กน้อยเพื่อให้สภาพแวดล้อมการทำงานมีความเป็นส่วนตัวอย่างลึกซึ้ง เขาให้ฐานข้อมูล บริษัท หนึ่งฐานแก่ฉันก่อนหน้านี้และตรงข้ามกับสิ่งที่ฉันได้รับการสอน (และอ่าน) ในโรงเรียนสำหรับ RDBMS ตัวอย่างเช่นมีฐานข้อมูลทั้งหมดที่นี่ซึ่งประกอบด้วยหนึ่งตาราง (ต่อฐานข้อมูลอิสระ) หนึ่งในตารางเหล่านั้นมีความยาว 20+ คอลัมน์และสำหรับบริบทนี่คือชื่อคอลัมน์บางส่วนจากตารางเดียว : lngStoreID | vrStoreName | lngCompanyID | vrCompanyName | lngProductID | vrProductName จุดที่เป็นที่ที่เขาควรจะมีตารางบุคคลที่เก็บข้อมูลกิจการ (ชื่อ, ขนาด, วันที่ซื้อ ฯลฯ ) เขาผลักมันทั้งหมดในตารางขนาดใหญ่หนึ่งต่อฐานข้อมูล ฉันต้องการปรับปรุงการออกแบบนี้ แต่ฉันไม่แน่ใจว่าทำไมตัวแบบข้อมูลที่ได้รับการทำให้เป็นมาตรฐานและจัดกลุ่มอย่างถูกต้องจะปรับปรุงผลิตภัณฑ์นี้ได้จริง ในขณะที่ฉันคุ้นเคยกับการออกแบบฐานข้อมูลจากวิทยาลัยและฉันเข้าใจวิธีการทำฉันไม่แน่ใจว่าทำไมสิ่งนี้ถึงช่วยปรับปรุงฐานข้อมูลได้จริง ทำไม schema เชิงสัมพันธ์ที่ดีจึงปรับปรุงฐานข้อมูล

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

6
นี่เป็นวิธีที่ไร้สาระในการสร้างโครงสร้าง DB หรือไม่หรือฉันขาดอะไรไปเลย?
ฉันทำงานกับฐานข้อมูลเชิงสัมพันธ์และคิดว่าฉันเข้าใจแนวคิดพื้นฐานของการออกแบบสคีมาที่ดีพอสมควร ฉันเพิ่งได้รับมอบหมายให้ทำโครงการที่ DB ออกแบบโดยที่ปรึกษาที่ได้รับค่าตอบแทนสูง โปรดแจ้งให้เราทราบว่าลำไส้ของฉัน - "WTF ??!?" - ได้รับการรับประกันหรือเป็นชายผู้นี้ที่เป็นอัจฉริยะที่เขาใช้งานนอกโลกของฉันหรือไม่? DB ในคำถามคือแอปที่ใช้ในการป้อนคำขอจากพนักงาน เพียงดูที่ส่วนเล็ก ๆ ของมันคุณมีข้อมูลเกี่ยวกับผู้ใช้และข้อมูลเกี่ยวกับการร้องขอ ฉันจะออกแบบเช่นนี้เพื่อ: ตารางผู้ใช้: UserID (primary Key, indexed, no dupes) FirstName LastName Department ขอโต๊ะ RequestID (primary Key, indexed, no dupes) <...> various data fields containing request details UserID -- foreign key associated with User table ง่ายใช่มั้ย ที่ปรึกษาออกแบบแบบนี้ …
61 database  sql  schema 

11
การควบคุมแหล่งฐานข้อมูล
ไฟล์ฐานข้อมูล (สคริปต์ ฯลฯ ) ควรอยู่ในการควบคุมแหล่งที่มาหรือไม่ ถ้าอย่างนั้นเป็นวิธีที่ดีที่สุดในการเก็บไว้และอัปเดตที่นั่น? มีความจำเป็นที่จะต้องใช้ไฟล์ฐานข้อมูลในการควบคุมซอร์สหรือไม่เนื่องจากเราสามารถวางไว้บนเซิร์ฟเวอร์การพัฒนาที่ทุกคนสามารถใช้งานได้และทำการเปลี่ยนแปลงหากจำเป็น แต่ถ้าอย่างนั้นเราก็ไม่สามารถเอามันกลับมาได้ วิธีใดที่ใช้ดีที่สุดสำหรับฐานข้อมูลในการควบคุมแหล่งที่มา?

4
กำลังสำรองฐานข้อมูล MySQL ใน Git เป็นความคิดที่ดีหรือไม่
ฉันพยายามปรับปรุงสถานการณ์การสำรองข้อมูลสำหรับแอปพลิเคชันของฉัน ฉันมีแอพพลิเคชั่น Django และฐานข้อมูล MySQL ฉันอ่านบทความแนะนำการสำรองฐานข้อมูลใน Git ในมือข้างหนึ่งฉันชอบมันจะเก็บสำเนาของข้อมูลและรหัสในการซิงค์ แต่ Git นั้นออกแบบมาสำหรับรหัสไม่ใช่สำหรับข้อมูล เช่นนี้มันจะทำงานพิเศษมากมายซึ่งต่างจากการถ่ายโอนข้อมูล MySQL ทุกการกระทำซึ่งไม่จำเป็นจริงๆ หากฉันบีบอัดไฟล์ก่อนจัดเก็บไฟล์ git จะยังคงแตกต่างกันหรือไม่? (ปัจจุบันไฟล์การถ่ายโอนข้อมูลถูกยกเลิกการบีบอัด 100MB, 5.7MB เมื่อบีบอัดไฟล์) แก้ไข: คำจำกัดความสคีมาของรหัสและฐานข้อมูลมีอยู่แล้วใน Git จริง ๆ แล้วเป็นข้อมูลที่ฉันกังวลเกี่ยวกับการสำรองตอนนี้
57 database  git  mysql  django 

10
เมื่อใดที่คุณจะใช้ ID สตริงยาวแทนที่จะเป็นจำนวนเต็มอย่างง่าย [ปิด]
ฉันต้องการที่จะใช้ Youtube เป็นตัวอย่าง: PEckzwggd78พวกเขาใช้รหัสในรูปแบบของ ทำไมพวกเขาถึงไม่ใช้จำนวนเต็มอย่างง่าย? หรือ imgur.com - พวกเขายังใช้ ID เช่น9b6tMZSรูปภาพและแกลเลอรี่ ไม่ใช่จำนวนเต็มตามลำดับ ทำไมพวกเขาไม่ใช้จำนวนเต็ม (โดยเฉพาะอย่างยิ่งลำดับ) ในสิ่งที่กรณีมันคือการตัดสินใจที่ชาญฉลาดในการใช้รหัสสตริงดังกล่าวแทนจำนวนเต็ม?

8
การจัดเก็บรายการที่สั่งซื้อซ้ำได้ในฐานข้อมูล
ฉันกำลังทำงานกับระบบสิ่งที่ปรารถนาซึ่งผู้ใช้สามารถเพิ่มรายการลงในรายการสิ่งที่ปรารถนาต่าง ๆ ได้และฉันวางแผนที่จะอนุญาตให้ผู้ใช้สั่งซื้อรายการอีกครั้งในภายหลัง ฉันไม่แน่ใจเกี่ยวกับวิธีที่ดีที่สุดในการเก็บข้อมูลนี้ในฐานข้อมูลในขณะที่ยังคงรวดเร็วและไม่เปลี่ยนเป็นระเบียบ (แอพนี้จะถูกใช้โดยฐานผู้ใช้ขนาดใหญ่พอสมควรดังนั้นฉันไม่ต้องการให้ลงไป เพื่อล้างสิ่งต่าง ๆ ) ตอนแรกฉันลองpositionคอลัมน์ แต่ดูเหมือนว่ามันจะไม่มีประสิทธิภาพเลยที่จะต้องเปลี่ยนค่าตำแหน่งของไอเท็มอื่นทุกรายการเมื่อคุณเลื่อนมันไปมา ฉันเคยเห็นคนที่ใช้การอ้างอิงตนเองเพื่ออ้างอิงถึงค่าก่อนหน้า (หรือถัดไป) แต่อีกครั้งดูเหมือนว่าคุณจะต้องอัปเดตรายการอื่น ๆ อีกมากในรายการ วิธีแก้ปัญหาอื่นที่ฉันเห็นคือใช้เลขทศนิยมและติดสิ่งของในช่องว่างระหว่างพวกเขาซึ่งดูเหมือนจะเป็นทางออกที่ดีที่สุด แต่ฉันแน่ใจว่าต้องมีวิธีที่ดีกว่า ฉันจะบอกว่ารายการทั่วไปจะมีมากถึง 20 รายการหรือมากกว่านั้นและฉันอาจจะ จำกัด ไว้ที่ 50 การสั่งซื้อซ้ำจะใช้การลากและวางและอาจทำได้ในแบตช์เพื่อป้องกันสภาพการแข่งขันและจาก คำขอ Ajax ฉันใช้ postgres (ที่ heroku) ถ้าเป็นเรื่องสำคัญ ไม่มีใครมีความคิดใด ๆ ไชโยสำหรับความช่วยเหลือใด ๆ !

13
จำเป็นหรือไม่ในการสร้างฐานข้อมูลที่มีตารางน้อยที่สุด
เราควรสร้างโครงสร้างฐานข้อมูลด้วยจำนวนตารางขั้นต่ำหรือไม่ ควรออกแบบในลักษณะที่ทุกอย่างอยู่ในที่เดียวหรือไม่หรือมีตารางเพิ่มขึ้น? จะมีผลกับสิ่งใดหรือไม่ ฉันถามคำถามนี้เพราะเพื่อนของฉันกำลังแก้ไขโครงสร้างฐานข้อมูลบางอย่างใน mediaWiki ในท้ายที่สุดแทนที่จะใช้ 20 ตารางเขาใช้เพียง 8 และเขาใช้เวลา 8 เดือนในการทำเช่นนั้น (มันเป็นงานมอบหมายวิทยาลัยของเขา) แก้ไข ฉันกำลังสรุปคำตอบเมื่อ: ขนาดของตารางไม่สำคัญจนกว่าจะถึงกรณีพิเศษ ในกรณีนี้การทำให้เป็นปกติอาจช่วยได้ ขอบคุณทุกคนสำหรับคำตอบ

8
การใช้ฐานข้อมูล NoSQL ทำไม่ได้กับชุดข้อมูลขนาดใหญ่ที่คุณต้องการค้นหาตามเนื้อหาหรือไม่?
ฉันได้เรียนรู้เกี่ยวกับฐานข้อมูล NoSQL เป็นเวลาหนึ่งสัปดาห์แล้ว ฉันเข้าใจถึงข้อดีของฐานข้อมูล NoSQL และกรณีการใช้งานจำนวนมากที่ยอดเยี่ยม แต่บ่อยครั้งที่คนเขียนบทความราวกับว่า NoSQL สามารถแทนที่ฐานข้อมูลเชิงสัมพันธ์ได้ และมีจุดที่ฉันไม่สามารถไปรอบ ๆ : ฐานข้อมูล NoSQL เป็นที่เก็บคีย์ - ค่า (มัก) แน่นอนว่าเป็นไปได้ที่จะเก็บทุกอย่างไว้ในที่เก็บคีย์ - ค่า (โดยการเข้ารหัสข้อมูลใน JSON, XML, อะไรก็ตาม) แต่ปัญหาที่ฉันเห็นคือคุณต้องได้รับข้อมูลจำนวนหนึ่งที่ตรงกับเกณฑ์เฉพาะในหลาย ๆ ใช้กรณี ในฐานข้อมูล NoSQL คุณมีเกณฑ์เดียวคุณสามารถค้นหาได้อย่างมีประสิทธิภาพ - กุญแจ ฐานข้อมูลเชิงสัมพันธ์ได้รับการปรับปรุงเพื่อค้นหาค่าใด ๆ ในแถวข้อมูลได้อย่างมีประสิทธิภาพ ดังนั้นฐานข้อมูล NoSQL จึงไม่ใช่ทางเลือกสำหรับการเก็บข้อมูลที่ต้องการค้นหาเนื้อหาของพวกเขา หรือฉันเข้าใจผิดบางอย่าง? ตัวอย่าง: คุณต้องจัดเก็บข้อมูลผู้ใช้สำหรับ webshop ในฐานข้อมูลเชิงสัมพันธ์คุณเก็บผู้ใช้ทุกคนเป็นแถวในusersตารางโดยมี ID, ชื่อ, ประเทศของเขา ฯลฯ ในฐานข้อมูล NoSQL …

6
ใน microservice เป็นฐานข้อมูลเดียวหรือฐานข้อมูลเดียวสำหรับแต่ละบริการหรือไม่
ฉันเข้าใจว่าแต่ละบริการในสถาปัตยกรรม microservice ควรมีฐานข้อมูลของตัวเอง อย่างไรก็ตามด้วยการมีฐานข้อมูลของตัวเองมันหมายถึงการมีฐานข้อมูลอื่นในอินสแตนซ์ฐานข้อมูลเดียวกันหรือมีอินสแตนซ์ฐานข้อมูลอื่นอยู่ใช่หรือไม่ โดยสิ่งนี้ฉันไม่ได้หมายถึงการแชร์ฐานข้อมูลซึ่งไม่ใช่ข้อยกเว้น แต่เป็นอินสแตนซ์ฐานข้อมูล ตัวอย่างเช่นถ้าฉันใช้ AWS และมีบริการ 3 รายการฉันจะสร้างฐานข้อมูล 3 รายการสำหรับบริการแต่ละรายการในอินสแตนซ์ RDS เดียวหรือฉันจะสร้างอินสแตนซ์ RDS 3 รายการแต่ละรายการมีฐานข้อมูลซึ่งใช้บริการแต่ละบริการอย่างอิสระหรือไม่ หากการใช้ฐานข้อมูลหลาย ๆ ตัวบนอินสแตนซ์ RDS เดียวเป็นความคิดที่ดีกว่ามันจะเอาชนะวัตถุประสงค์ของการมีบริการที่เป็นอิสระเพราะ: ทรัพยากรของอินสแตนซ์ RDS จะถูกแชร์ระหว่างบริการต่างๆ Service A ซึ่งอาจมีการใช้งานฐานข้อมูลจำนวนมากในบางช่วงเวลาจะส่งผลกระทบต่อบริการ B ซึ่งใช้ฐานข้อมูลอื่น แต่ในอินสแตนซ์ RDS เดียวกันหรือไม่ บริการทั้งหมดจะขึ้นอยู่กับรุ่นฐานข้อมูลของอินสแตนซ์ RDS นั้น

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 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.