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

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

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

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

1
Redis vs Zookeeper
ดูเหมือนว่าโง่เมื่อเปรียบเทียบเซิร์ฟเวอร์ทั้งสองนี้เนื่องจากพวกเขามีความหมายที่แตกต่างกันมาก แต่ถ้าคุณคิดเกี่ยวกับมันพวกเขาสามารถทำสิ่งที่คล้ายกันมากมาย: เก็บข้อมูลการกำหนดค่าการล็อคแบบกระจายการเข้าคิว ฯลฯ ฉันมีตัวอย่างของRedisที่ฉันใช้กับสิ่งที่เกี่ยวข้องกับการผลิตบางอย่าง แต่ต้องการทำการซิงโครไนซ์อย่างง่ายระหว่างเซิร์ฟเวอร์ อะไรZookeeperให้ฉันที่ Redis จะไม่?

13
เหตุใดฐานข้อมูลจึงไม่รวมเป็นคุณสมบัติภาษา
มีภาษาการเขียนโปรแกรมที่มีฐานข้อมูลในตัวเป็นคุณสมบัติภาษาชั้นหนึ่งมากกว่าการเชื่อมต่อกับฐานข้อมูล SQL (หรืออื่น ๆ ) ภายนอกหรือไม่? อะไรคือข้อเสียและประโยชน์ของฟีเจอร์ดังกล่าว? คุณลักษณะเช่นนี้จะมีลักษณะเป็นอย่างไรและจะเปลี่ยนวิธีการตั้งโปรแกรมของเราอย่างไร

3
การแก้ปัญหาข้อขัดแย้งสำหรับการซิงค์สองทาง
คุณจะจัดการการซิงโครไนซ์แบบสองทางระหว่างเซิร์ฟเวอร์ฐานข้อมูล 'หลัก' และเซิร์ฟเวอร์ 'รอง' จำนวนมากได้อย่างไรในการแก้ไขข้อขัดแย้งโดยเฉพาะหากการเชื่อมต่อไม่สามารถใช้ได้ตลอดเวลา ตัวอย่างเช่นฉันมีแอพมือถือที่ใช้ CoreData เป็น 'ฐานข้อมูล' บน iOS และฉันต้องการอนุญาตให้ผู้ใช้แก้ไขเนื้อหาโดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต ในเวลาเดียวกันข้อมูลนี้มีอยู่ในเว็บไซต์ที่อุปกรณ์จะเชื่อมต่อ ฉันจะทำอย่างไรถ้า / เมื่อข้อมูลในเซิร์ฟเวอร์ DB ทั้งสองมีข้อขัดแย้ง (ฉันอ้างถึง CoreData เป็นเซิร์ฟเวอร์ฐานข้อมูล แต่ฉันรู้ว่ามันเป็นสิ่งที่แตกต่างออกไปเล็กน้อย) มีกลยุทธ์ทั่วไปในการจัดการกับปัญหาประเภทนี้หรือไม่? นี่คือตัวเลือกที่ฉันคิดได้: 1. ใช้ข้อมูลฝั่งไคลเอ็นต์เป็นลำดับความสำคัญที่สูงขึ้น 2. เหมือนกันกับฝั่งเซิร์ฟเวอร์ 3. พยายามแก้ไขข้อขัดแย้งด้วยการทำเครื่องหมายการประทับเวลาการแก้ไขของแต่ละฟิลด์และทำการแก้ไขล่าสุด แม้ว่าฉันจะแน่ใจว่าตัวเลือกที่ 3 จะเปิดห้องสำหรับการทำลายข้อมูลที่รุนแรง ฉันรู้ว่าทฤษฎีบท CAP เกี่ยวข้องกับเรื่องนี้ แต่ฉันต้องการความมั่นคงในที่สุดเท่านั้นดังนั้นมันจึงไม่ได้ออกกฎสมบูรณ์ใช่ไหม? คำถามที่เกี่ยวข้อง: ที่ดีที่สุดรูปแบบการปฏิบัติสำหรับการประสานข้อมูลแบบสองทาง คำตอบที่สองสำหรับคำถามนี้บอกว่าคงไม่สามารถทำได้

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

4
วิธีที่ดีที่สุดในการซิงโครไนซ์ข้อมูลระหว่างสองฐานข้อมูลที่แตกต่างกัน
ฉันต้องใช้การประสานข้อมูลระหว่างสองฐานข้อมูลขนาดใหญ่ที่มีโครงสร้างที่แตกต่างกันโดยสิ้นเชิง โดยทั่วไปฉันต้องการรวบรวมข้อมูลบางอย่างเกี่ยวกับผลิตภัณฑ์ในตารางที่แตกต่างกันในฐานข้อมูลแรกและจัดเรียงใหม่สำหรับตารางอื่น ๆ ในฐานข้อมูลที่สอง การสร้างผลิตภัณฑ์ของฉันในครั้งแรกนั้นไม่ซับซ้อนมาก แต่ฉันกำลังมองหาวิธีการอัปเดตข้อมูลเฉพาะบางอย่าง - ไม่ใช่ข้อมูลทั้งหมด - เกี่ยวกับแต่ละผลิตภัณฑ์ เห็นได้ชัดว่ามีบางประเด็นที่ทำให้เรื่องนี้ยุ่งยาก ฉันไม่ได้รับอนุญาตให้ทำสิ่งใดในฐานข้อมูลต้นฉบับนอกเหนือจากแบบสอบถามแบบใช้เลือกข้อมูล บนฐานข้อมูลเป้าหมายฉันสามารถทำการสืบค้นตามปกติ (เลือกอัปเดตแทรกสร้าง) แต่ฉันไม่สามารถแก้ไขโครงสร้าง / ตารางที่มีอยู่ได้ Target และ source db มีโครงสร้างที่แตกต่างกันโดยสิ้นเชิงตารางไม่เหมือนกันเลยดังนั้นข้อมูลจะต้องถูกจัดเรียงใหม่จริง ๆ การเปรียบเทียบตารางจะไม่ทำงาน ฐานข้อมูลเป้าหมายใช้เซิร์ฟเวอร์ MySQL - ซอร์สอาจเป็น DB2 ไม่มีฟิลด์ "เวลาที่อัปเดต" ที่ใดก็ได้ ดังนั้นกระบวนการทั้งหมดจะต้องทำในสคริปต์ Python (นึกคิด) เดียว ฉันคิดเกี่ยวกับการสร้างแฮชสำหรับแต่ละผลิตภัณฑ์โดยอิงตามฟิลด์เพื่ออัปเดตในฐานข้อมูลเป้าหมาย: md5 (รหัส + คำอธิบาย + ผู้จำหน่าย + ประมาณ 10 สาขาอื่น ๆ ) แฮชใหม่ที่ใช้ข้อมูลเดียวกันจะถูกสร้างขึ้นทุกวันจากฐานข้อมูลต้นทาง …

6
ขนาดของข้อมูลที่เป็นประโยชน์ในการย้ายจาก SQL เป็น NoSQL คืออะไร?
ในฐานะโปรแกรมเมอร์ฐานข้อมูลเชิงสัมพันธ์ (ส่วนใหญ่) ฉันอ่านบทความเกี่ยวกับวิธีที่ฐานข้อมูลเชิงสัมพันธ์ไม่ได้ปรับขนาดและโซลูชั่น NoSQL เช่น MongoDB ทำ เนื่องจากฐานข้อมูลส่วนใหญ่ที่ฉันพัฒนามามีขนาดเล็กจนถึงขนาดกลางฉันไม่เคยมีปัญหาที่ไม่ได้รับการแก้ไขด้วยการจัดทำดัชนีการเพิ่มประสิทธิภาพการสืบค้นหรือการออกแบบสคีมา ขนาดที่ฉันคาดหวังว่าจะเห็น MySQL ดิ้นรนกับขนาด มีกี่แถว (ฉันรู้ว่าสิ่งนี้จะขึ้นอยู่กับแอปพลิเคชันและประเภทของข้อมูลที่เก็บไว้สิ่งที่ทำให้ฉันเป็นพื้นฐานข้อมูลพันธุศาสตร์ดังนั้นจะมีหนึ่งตารางหลักที่มี 3 หรือ 4 ตารางการค้นหาตารางหลักจะประกอบด้วย สิ่งอื่น ๆ การอ้างอิงโครโมโซมและพิกัดตำแหน่งมันอาจจะได้รับการสอบถามจำนวนรายการระหว่างสองมื้อในโครโมโซมเพื่อดูสิ่งที่เก็บไว้ที่นั่น)

7
แก้ไขข้อมูลฐานข้อมูลการผลิตอย่างปลอดภัย
ข้อบกพร่องเกิดขึ้นและบางครั้งข้อมูลจะต้องได้รับการแก้ไขในการผลิต วิธีที่ปลอดภัยที่สุดที่จะไปเกี่ยวกับเรื่องนี้จากมุมมองของ บริษัท ใหญ่คืออะไร? มีเครื่องมือที่สามารถช่วยได้หรือไม่? ต่อไปนี้เป็นข้อควรพิจารณาบางข้อที่ทำให้เกิดข้อกำหนดนี้ ... เราต้องบันทึกว่าใครเป็นคนค้นหาและสิ่งที่พวกเขาวิ่ง โดยหลักการแล้วเราจำเป็นต้องให้สิทธิ์การเข้าถึงแก่บุคคลในการเรียกใช้คิวรีกับตารางที่สนใจและเพียงช่วงเวลาสั้น ๆ เท่านั้น อะไรก็ตามที่กำลังรันเคียวรีจะต้องมีสมาร์ทโฟนบางตัวเพื่อไม่ให้ใช้งานได้นานและล็อค SQL ให้ทำงานโดยไม่ได้รับอนุญาตอย่างชัดเจน กระบวนการนี้จะต้องเป็นผู้ไม่เชื่อเรื่องพระเจ้า DB หรืออย่างน้อยก็เข้าใจ DB2, Oracle, และ SQL Server เราพยายามที่จะลดความเสี่ยงของการสืบค้นแบบ ad-hoc prod-up จากการทำสิ่งที่ผิดและในขณะเดียวกันก็เพิ่มความปลอดภัย / audtis ให้กับกระบวนการ ความคิดหรือความคิด?
23 database  risk 

12
ข้อดีของการจัดเก็บ xml ในฐานข้อมูลเชิงสัมพันธ์คืออะไร
วันนี้ฉันได้พูดคุยกับฐานข้อมูล AdventureWorks และฉันสังเกตเห็นว่ามีตารางจำนวนหนึ่ง ( HumanResources.JobCandidateและ Sales.Individualตัวอย่าง) มีคอลัมน์ที่เก็บข้อมูล xml สิ่งที่ฉันจะรู้ก็คือข้อดีของการจัดเก็บข้อมูลมูลค่าของแถวฐานข้อมูลในคอลัมน์ของตารางอื่นคืออะไร สิ่งนี้ทำให้การสืบค้นข้อมูลนี้ยากหรือไม่ หรือสมมติฐานที่ว่าข้อมูลไม่จำเป็นต้องถูกสอบถามและเพียงแค่ต้องถูกจัดเก็บ?
23 design  database  xml 

11
การสร้างคีย์หลักรองในฐานข้อมูลสำหรับบางตาราง
ในบางตารางของฉันฉันต้องการเพิ่ม "second_primary_key" ซึ่งจะเป็น uuid หรือบางคีย์ยาวแบบสุ่ม ฉันต้องการเพราะบางตารางฉันไม่ต้องการให้จำนวนเต็มกับเว็บแอปพลิเคชันของฉัน นั่นคือในหน้า "/ ใบแจ้งหนี้" ฉันมีรายการใบแจ้งหนี้และลิงก์ไปยัง "/ ใบแจ้งหนี้ /: id" โดยที่: id เป็นจำนวนเต็ม ฉันไม่ต้องการให้ผู้ใช้ทราบจำนวนใบแจ้งหนี้ในระบบของฉันที่นั่นดังนั้นแทนที่จะเป็น "/ ใบแจ้งหนี้ / 123" ฉันต้องการใช้ "second_primary_key" เพื่อให้ URL เป็น "/ ใบแจ้งหนี้ / N_8Zk241vNa" เช่นเดียวกันกับตารางอื่น ๆ ที่ฉันต้องการซ่อนรหัสจริง ฉันสงสัยว่านี่เป็นเรื่องธรรมดาหรือไม่ วิธีที่ดีที่สุดในการใช้งานนี้คืออะไร และเทคนิคนี้เรียกว่าอะไรหลังจากทั้งหมดเพื่อที่ฉันจะค้นหามัน?

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

3
จัดเก็บภาพในฐานข้อมูลหรือในไฟล์ที่มีลิงค์ฐานข้อมูลหรือไม่
การจัดเก็บไฟล์ภาพในฐานข้อมูลเหมาะสมหรือไม่? หรือมันจะดีกว่าที่จะเก็บเฉพาะเส้นทางของไฟล์ในฐานข้อมูลในขณะที่เก็บไฟล์ไว้บนเซิร์ฟเวอร์? มีวิธีอื่นในการทำสิ่งนี้ใช่ไหม?

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

3
วิธีการจัดเก็บราคาที่มีวันที่มีผล?
ฉันมีรายการผลิตภัณฑ์ ผู้ให้บริการแต่ละรายจะถูกเสนอโดย N ผู้ให้บริการแต่ละรายเสนอราคาให้เราตามวันที่เฉพาะเจาะจง ราคานั้นจะมีผลจนกว่าผู้ให้บริการรายนั้นจะตัดสินใจกำหนดราคาใหม่ ในกรณีนั้นผู้ให้บริการจะแจ้งราคาใหม่พร้อมวันที่ใหม่ ส่วนหัวของตาราง MySQL ในปัจจุบันดูเหมือนว่า: provider_id, product_id, price, date_price_effective ทุก ๆ วันเราจะรวบรวมรายการผลิตภัณฑ์ / ราคาที่มีผลสำหรับวันปัจจุบัน สำหรับแต่ละผลิตภัณฑ์รายการจะมีรายการที่เรียงลำดับของผู้ให้บริการที่มีผลิตภัณฑ์นั้น ๆ ด้วยวิธีนี้เราสามารถสั่งซื้อผลิตภัณฑ์บางอย่างจากใครก็ตามที่เสนอราคาที่ดีที่สุด เพื่อให้ได้ราคาที่มีประสิทธิภาพผมมีคำสั่ง SQL date_price_effective >= NOW()ที่ส่งกลับแถวทั้งหมดที่มี ชุดผลลัพธ์นั้นถูกประมวลผลด้วยสคริปต์ ruby ​​ซึ่งทำการเรียงลำดับและกรองข้อมูลที่จำเป็นเพื่อรับไฟล์ที่มีลักษณะดังนี้: product_id_1,provider_1,provider_3,provider8,provider_10... product_id_2,provider_3,provider_2,provider1,provider_10... มันใช้งานได้ดีสำหรับวัตถุประสงค์ของเรา แต่ฉันยังคงมีอาการคันที่ตาราง SQL อาจไม่ใช่วิธีที่ดีที่สุดในการจัดเก็บข้อมูลประเภทนี้ ฉันมีความรู้สึกว่าปัญหาแบบนี้ได้รับการแก้ไขก่อนหน้านี้ในรูปแบบที่สร้างสรรค์มากขึ้น มีวิธีที่ดีกว่าในการจัดเก็บข้อมูลนี้นอกเหนือจากใน SQL? หรือถ้าใช้ SQL มีวิธีที่ดีกว่าที่ฉันใช้อยู่หรือไม่?

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