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

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

5
สำหรับการตรวจสอบความถูกต้องของข้อมูลสนับสนุน ORM ควรมีการบังคับใช้ข้อ จำกัด ในฐานข้อมูลด้วยหรือไม่
ฉันมักใช้ข้อ จำกัด ในระดับฐานข้อมูลเพิ่มเติมจากรุ่น (ActiveRecord) ของฉัน แต่ฉันสงสัยว่าสิ่งนี้จำเป็นจริงๆหรือ? พื้นหลังเล็กน้อย ฉันเพิ่งต้องทดสอบหน่วยวิธีการสร้างประทับเวลาอัตโนมัติขั้นพื้นฐานสำหรับรุ่น โดยปกติแล้วการทดสอบจะสร้างตัวอย่างของแบบจำลองและบันทึกโดยไม่มีการตรวจสอบความถูกต้อง แต่มีเขตข้อมูลที่จำเป็นอื่น ๆ ที่ไม่สามารถลบล้างได้ในคำจำกัดความของตารางหมายความว่าฉันไม่สามารถบันทึกอินสแตนซ์แม้ว่าฉันจะข้ามการตรวจสอบ ActiveRecord ดังนั้นฉันคิดว่าฉันควรลบข้อ จำกัด ดังกล่าวออกจากฐานข้อมูลตัวเองแล้วปล่อยให้ ORM จัดการกับมันหรือไม่? ข้อได้เปรียบที่เป็นไปได้ถ้าฉันข้ามข้อ จำกัด ใน db, imo - สามารถแก้ไขกฎการตรวจสอบในรูปแบบโดยไม่ต้องย้ายฐานข้อมูล สามารถข้ามการตรวจสอบในการทดสอบ ข้อเสียที่เป็นไปได้? หากเป็นไปได้ว่าการตรวจสอบความถูกต้องของ ORM ล้มเหลวหรือถูกข้ามไปฐานข้อมูลจะไม่ตรวจสอบข้อ จำกัด คุณคิดอย่างไร? แก้ไขในกรณีนี้ฉันใช้Yii Frameworkซึ่งสร้างแบบจำลองจากฐานข้อมูลดังนั้นกฎฐานข้อมูลจึงถูกสร้างขึ้นด้วย
13 database  orm  validation  dry 

4
สกีมาฐานข้อมูลมีการโยกย้ายปัญหาในสภาพแวดล้อมการผลิตหรือไม่
ในการอภิปรายเกี่ยวกับฐานข้อมูล NoSQL vs SQL บางครั้งฉันได้ยินว่า บริษัท ต้องการใช้ฐานข้อมูลแบบไม่มี schema ของ schemaless เนื่องจากเป็นปัญหาในการโยกย้ายสคีมาเป็นเวอร์ชันใหม่ แต่นั่นเป็นปัญหาใหญ่จริง ๆ เมื่อทำการอัพเกรด ฐานข้อมูลเชิงสัมพันธ์นั้นแย่สำหรับการดำเนินการดังกล่าวหรือไม่? ฉันอ่านโพสต์บล็อกนี้ในบล็อก MongoDB: ทำไมต้อง Schemaless

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

2
วิธีรับการแจ้งเตือนแบบเรียลไทม์เมื่อมีการเปลี่ยนแปลงฐานข้อมูล (แทรกอัปเดตลบ)?
ฉันกำลังสร้างแดชบอร์ดซึ่งควรตรวจสอบตารางฐานข้อมูล ฉันมีการเข้าถึงฐานข้อมูลเท่านั้น (ไม่มีเลเยอร์แอปพลิเคชัน) ตารางมีขนาดค่อนข้างใหญ่ (10 ล้านแถว) แต่ไม่เปลี่ยนแปลงอย่างรวดเร็ว (100 เม็ด / อัปเดตต่อนาที) ฉันจะทราบได้อย่างไรว่าตารางมีการเปลี่ยนแปลงอย่างไร ฉันจะพยายามที่จะตีฐานข้อมูลทุกวินาที แต่ดูเหมือนว่าวิธีการดุร้ายกำลัง ... ฐานข้อมูล: MySQL / Postgres

2
คุณจัดการกับการปรับใช้การเปลี่ยนแปลงฐานข้อมูลอย่างไร
เราได้พูดคุยเกี่ยวกับเทคนิคการปรับใช้ฐานข้อมูลในวันนี้เนื่องจากมีความล้มเหลวสองสามครั้งในกระบวนการปัจจุบันของเราและได้เห็นสถานการณ์ที่เราต้องการย้อนกลับการปรับใช้ แต่แอปพลิเคชันรุ่นเก่าไม่เคยทดสอบกับเวอร์ชันใหม่ของ ฐานข้อมูล ในอีกด้านหนึ่งมีการปรับใช้รูปแบบการโยกย้ายที่คุณมีคำสั่งแบบขึ้น - ลงและการเรียนการสอนแบบลง - ลง (ไม่ว่าจะเขียนใน SQL หรือในภาษาแอปพลิเคชันของคุณ) และแอปของคุณรู้รุ่นที่มันต้องการ สิ่งเหล่านี้เรียบง่ายและเราจะไม่ย้อนกลับบ่อยนักพัฒนามีความกระตือรือร้น อย่างไรก็ตามมีความเสี่ยงเมื่อคุณเพิ่มเขตข้อมูล / ตารางและเขตข้อมูลนั้นจะถูกเติมก่อนที่คุณจะย้อนกลับ หรือแย่กว่านั้นคือคุณทิ้งข้อมูลที่เกี่ยวข้องกับเวอร์ชันก่อนหน้า ในทางกลับกันเราสามารถพิจารณาการอัพเกรดการย้อนกลับการใช้วิธีการย้อนกลับซึ่งการย้อนกลับไม่รุนแรงเหมือนการย้ายข้อมูล ตัวอย่างเช่นการอัปเกรดอาจเพิ่มฟิลด์ที่ไม่สามารถยกเลิกได้ ย้อนกลับทำให้เป็นโมฆะเพื่อให้แอปเก่าไม่สนใจ rollforward จะเติมฟิลด์ว่างและทำให้มันไม่สามารถลบล้างได้อีก สิ่งนี้จะเก็บข้อมูล แต่มีความซับซ้อนทั้งในการเขียนโค้ดและเพื่อทดสอบ (น่าเศร้าที่การทดสอบการรวมอัตโนมัติของเรานั้นไม่ค่อยมีอยู่จริงและในขณะที่เรากำลังแก้ไขนั้นเรามีปัญหาในขณะเดียวกัน) มีวิธีที่ปลอดภัยในการลดปัญหาเหล่านี้หรือไม่? มีตัวเลือกอื่น ๆ ที่ฉันควรพิจารณาหรือไม่ คุณเคยมีประสบการณ์ที่ไม่ดีที่คุณต้องการแบ่งปันซึ่งสามารถช่วยฉันเจ็บปวดในภายหลัง
13 database 

4
แนวปฏิบัติที่ดีที่สุดสำหรับการบันทึกเขตเวลาในฐานข้อมูลคืออะไร
เราต้องการเริ่มต้นรวบรวมเขตเวลาสำหรับที่อยู่แต่ละแห่งในฐานข้อมูล วิธีที่ดีที่สุดในการจัดเก็บเขตเวลาคืออะไร? คุณจะไปเกี่ยวกับการหาเขตเวลาสำหรับบันทึกที่อยู่ที่มีอยู่ได้อย่างไร ฉันใช้เซิร์ฟเวอร์ Microsoft SQL, .net mvc, C # ข้อเสนอแนะใด ๆ ที่จะได้รับการชื่นชมอย่างมาก.

5
ทีมของฉันกลัวฐานข้อมูลเชิงสัมพันธ์ที่มีความสัมพันธ์กับต่างประเทศและฉันไม่เข้าใจว่าทำไม
ฉันค่อนข้างใหม่นอกมหาวิทยาลัยดังนั้นความคุ้นเคยกับฐานข้อมูลเชิงสัมพันธ์ส่วนใหญ่มาจากหลักสูตรฐานข้อมูลของฉันซึ่งไม่มีอะไรใน BCNF หรือ 3NF เป็นการเลียนแบบ แน่นอนว่าปลายด้านหนึ่งของสุดขั้ว แต่ทีมของฉันในที่ทำงานดูเหมือนจะนำไปสู่จุดจบที่ตรงกันข้ามอย่างสมบูรณ์ ใน microservice db schemas ของเราเอนทิตีมักจะมีมากกว่าหนึ่งตาราง สิ่งใดก็ตามที่คุณต้องการทำให้เป็นปกติในตารางอื่นจะถูกเก็บไว้ในคอลัมน์ json หากภายหลังพบว่าคุณสมบัติอย่างใดอย่างหนึ่งใน json นี้ต้องถูกสอบถามคอลัมน์ใหม่จะถูกเพิ่มและข้อมูลจะถูกเก็บไว้ในทั้งสองแห่ง (ใช่ในคอลัมน์ที่ต่างกันสองแห่งในตารางเดียวกัน) ในหลายกรณีคอลัมน์ json เหล่านี้มีข้อได้เปรียบอย่างแน่นอน หากคุณไม่จำเป็นต้องสืบค้นข้อมูลนั้นและหากคุณไม่จำเป็นต้องทำการเปลี่ยนแปลงข้อมูลข้างเดียว (ซึ่งเป็นสิ่งที่คุณไม่สามารถคาดการณ์ได้อย่างชัดเจน) นั่นไม่ใช่ความคิดที่ไม่ดี บวกกับบริการหลายอย่างของเราที่ไม่เห็นเซิร์ฟเวอร์หรือโฮสต์อยู่บนเครื่องที่มีเนื้อที่ดิสก์ลามกอนาจารสำหรับสิ่งที่พวกเขาต้องการดังนั้นการทำสำเนาข้อมูลจึงไม่ใช่ปัญหาใหญ่ (ถึงแม้ว่าสิ่งที่ฉันมักจะต้องการหลีกเลี่ยงปรัชญา) ขณะนี้เรากำลังสร้างบริการที่ตรงกับกฎตามชุดเงื่อนไขที่พวกเขาเป็นเจ้าของแล้วดำเนินการชุดของการกระทำที่เกี่ยวข้องกับกฎเหล่านั้นเมื่อกฎเป็นจริง (เช่นเงื่อนไขทั้งหมดเป็นจริง) ทีมงานย่อยของฉันที่สร้างบริการนี้ในทันทีส่วนใหญ่เชื่อว่ามีประโยชน์อย่างมากในการทำให้การดำเนินการและเงื่อนไขเป็นปกติอยู่ห่างจากกฎในสคีมา เห็นได้ชัดว่าตารางเหล่านี้รักษาความสัมพันธ์กับต่างประเทศที่สำคัญกับรหัสกฎ จากมุมมองของเราเราสามารถหลีกเลี่ยงการทำซ้ำข้อมูลในเงื่อนไขที่ทำให้เรามั่นใจได้ว่าพวกเขาจะได้รับการประเมินเพียงครั้งเดียวและเป็นเรื่องง่ายที่จะหาเงื่อนไขและกฎที่เราต้องการเมื่อต้องการโดยไม่ต้องดึงกฎออกทุกครั้ง การพูดกับหนึ่งในวิศวกรหลักของเราในวันนี้เขาพยายามผลักฉันให้ห่างจากสคีมานี้ การพยายามโต้แย้งในทุก ๆ ด้านที่เราไม่ต้องการจริง ๆ มันจะทำให้เกิดปัญหาด้านประสิทธิภาพในอนาคตโดยอ้างอิงจากหินก้อนเดียวที่เราเป็นเจ้าของนั่นคือการเลียนแบบการออกแบบ เขาอ้างถึงสิ่งที่เราทำในฐานะ "วิธีเก่า" และโต๊ะแบนที่มี json เป็น "วิธีใหม่" เขาแย้งว่าในสถานที่ที่ฉันต้องการอะตอมมิกเราไม่ต้องการมันและแทนที่จะเป็นแบบสอบถามเราควรทำหลายอย่างในความทรงจำ นี่คือหลักการออกแบบที่บริการหลายอย่างของเราปฏิบัติตามในขณะนี้ เราไม่คาดหวังว่าปริมาณข้อมูลของเราจะเติบโตอย่างมีนัยสำคัญซึ่งจะทำให้การสืบค้นของเรารวดเร็ว สิ่งที่เราคาดหวังคือเวลาที่ใช้ในการประเมินกฎและการดำเนินการ ฉันเข้าใจว่าฐานข้อมูลเชิงสัมพันธ์ที่ไม่ได้เป็นที่นิยมมากขึ้นในช่วงไม่กี่ปีที่ผ่านมา แต่แม้ในขณะที่ค้นหาข้อมูลเกี่ยวกับผลการปฏิบัติงานของความสัมพันธ์กับต่างประเทศที่สำคัญฉันไม่เห็นข้อมูลจำนวนมากที่ทำให้คดีของเขา ฉันคิดว่าพวกเขามีแนวโน้มที่จะแนะนำการทำธุรกรรมขนาดใหญ่ซึ่งอาจทำให้เกิดปัญหา …

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

4
มันไม่สมเหตุสมผลที่จะรวมความสัมพันธ์แบบหนึ่งต่อหนึ่งหรือไม่?
หากเรามีตาราง A ที่มีความสัมพันธ์แบบหนึ่งต่อหนึ่งกับตาราง B มันทำให้รู้สึกถึงความแตกต่างหรือไม่? หรือไม่เคยเจ็บที่จะรวมมันไว้ในตารางเดียว? ทำอย่างใดอย่างหนึ่งในสถานการณ์เหล่านี้ (สองตารางเทียบกับตารางที่รวมกันหนึ่งตาราง) ส่งผลต่อสิ่งใด ๆ ที่เกี่ยวกับรูปแบบปกติ (1NF, 2NF, 3NF ฯลฯ )

5
วิธีหลีกเลี่ยงการละเมิด SRP ในชั้นเรียนเพื่อจัดการแคช?
หมายเหตุ:ตัวอย่างโค้ดเขียนด้วย c # แต่นั่นไม่ควรสำคัญ ฉันใส่ c # เป็นแท็กเพราะหาแท็บไม่ได้อีก นี่คือเกี่ยวกับโครงสร้างรหัส ฉันอ่าน Clean Code และพยายามเป็นโปรแกรมเมอร์ที่ดีขึ้น ฉันมักจะพบว่าตัวเองกำลังดิ้นรนเพื่อทำตามหลักการความรับผิดชอบเดียว (ชั้นเรียนและฟังก์ชั่นควรทำเพียงสิ่งเดียว) โดยเฉพาะอย่างยิ่งในฟังก์ชั่น บางทีปัญหาของฉันคือ "สิ่งหนึ่ง" ไม่ชัดเจน แต่ก็ยัง ... ตัวอย่าง: ฉันมีรายการ Fluffies ในฐานข้อมูล เราไม่สนใจว่าปุยคืออะไร ฉันต้องการชั้นเรียนเพื่อกู้คืนความผิดปกติ อย่างไรก็ตาม fluffies สามารถเปลี่ยนแปลงได้ตามตรรกะบางอย่าง คลาสนี้จะส่งคืนข้อมูลจากแคชหรือรับข้อมูลล่าสุดจากฐานข้อมูลทั้งนี้ขึ้นอยู่กับตรรกะบางอย่าง เราสามารถพูดได้ว่ามันจัดการกับความฟู่ฟ่าและนั่นคือสิ่งหนึ่ง เพื่อให้ง่ายสมมติว่าข้อมูลที่โหลดนั้นดีสำหรับหนึ่งชั่วโมงจากนั้นจะต้องโหลดใหม่ class FluffiesManager { private Fluffies m_Cache; private DateTime m_NextReload = DateTime.MinValue; // ... public Fluffies GetFluffies() { …

2
อินเทอร์เฟซฐานข้อมูลที่เป็นนามธรรมถูกเขียนขึ้นเพื่อสนับสนุนหลายฐานข้อมูลได้อย่างไร?
หนึ่งจะเริ่มออกแบบคลาสนามธรรมในแอปพลิเคชันขนาดใหญ่ของพวกเขาที่สามารถเชื่อมต่อกับฐานข้อมูลหลายประเภทเช่น MySQL, SQLLite, MSSQL ฯลฯ ได้อย่างไร รูปแบบการออกแบบนี้เรียกว่าอะไรและเริ่มต้นตรงไหน สมมติว่าคุณต้องเขียนคลาสที่มีวิธีการดังต่อไปนี้ public class Database { public DatabaseType databaseType; public Database (DatabaseType databaseType){ this.databaseType = databaseType; } public void SaveToDatabase(){ // Save some data to the db } public void ReadFromDatabase(){ // Read some data from db } } //Application public class Foo { …
12 c#  database 

1
เข้าสู่ระบบไฟล์หรือตารางฐานข้อมูล?
ฉันกำลังพัฒนาเว็บแอปพลิเคชันที่ใช้ MS SQL สำหรับข้อมูลต่าง ๆ : รวมถึงผู้ใช้บัญชีผู้ใช้ใบอนุญาตผู้ใช้ราคาใบอนุญาตใบแจ้งหนี้ ฉันต้องการบันทึกการใช้งานแบบเรียลไทม์ของระบบของผู้ใช้และใช้สำหรับการเรียกเก็บเงินรายเดือน: เช่นบันทึกเมื่อใดก็ตามที่ผู้ใช้ได้รับหน้า / URL ที่เฉพาะเจาะจงและผู้ใช้ที่เรียกเก็บเงินเมื่อสิ้นเดือนตามจำนวนหน้าที่ดึงข้อมูล ฉันควรเขียนบันทึกเหตุการณ์เหล่านี้ลงในตารางในฐานข้อมูล MS SQL ของฉันหรือไม่ ฉันควรเขียนเหตุการณ์บันทึกเหล่านี้ลงในไฟล์บันทึกแบบต่อท้ายที่ไม่ใช่ SQL เท่านั้นหรือไม่ ฉันควรเขียนบันทึกเหตุการณ์เหล่านี้ลงในไฟล์บันทึกที่แตกต่างกันสำหรับผู้ใช้แต่ละคนหรือไม่ นี่ไม่ใช่เว็บไซต์ที่มีปริมาณมากโดยเฉพาะตัวอย่างเช่นมีผู้ใช้สูงสุด 10,000 คนต่อการทำกิจกรรมเฉลี่ย 5 เหตุการณ์ต่อวัน => 50,000 กิจกรรม / วัน = 30 กิจกรรม / นาที = 18,000,000 กิจกรรม / ปี ฉันถามเพราะดูเหมือนว่าตัวเลือกจะทำงานได้และฉันไม่เห็นว่ามีข้อได้เปรียบที่ชัดเจน ข้อมูลที่เกี่ยวข้องกับเหตุการณ์ที่เรียกเก็บเงินได้นั้นง่ายมากเช่น: ID ผู้ใช้ (ความสัมพันธ์กับ foreign key ไปยังตารางผู้ใช้ใน SQL) วันและเวลา …

4
C # Minimal SQL Database
ฉันกำลังทำงานในโครงการขนาดเล็ก (ไม่ใช่การผลิต) ที่ฉันต้องการจัดเก็บข้อมูลเพียงพอว่าบางสิ่งเช่น CSV จะไม่มีประสิทธิภาพในการประมวลผลและเซิร์ฟเวอร์ SQL / MySQL จะมากเกินไป . Net มีวิธีใดในการจัดเก็บข้อมูลหลายรายการอย่างมีประสิทธิภาพด้วยความสามารถในการสืบค้นโดยไม่ต้องจัดการและเชื่อมต่อกับเซิร์ฟเวอร์แทนที่จะโหลดและประมวลผลไฟล์เดียว
12 c#  database  sql 

4
เมื่อใดที่เราควรใช้เอนทิตีอ่อนเมื่อสร้างโมเดลฐานข้อมูล
นี่เป็นคำถามพื้นฐานเกี่ยวกับองค์กรที่อ่อนแอ เมื่อใดที่เราควรใช้พวกเขา พวกเขาควรทำตัวอย่างไร อะไรคือความแตกต่างที่สำคัญระหว่างเอนทิตี้ปกติและเอนทิตีที่อ่อนแอ เอนทิตีที่อ่อนแอนั้นสอดคล้องกับวัตถุที่มีค่าเมื่อทำการออกแบบโดเมนขับเคลื่อนหรือไม่ เพื่อช่วยให้คำถามในหัวข้อที่นี่เป็นตัวอย่างที่นำมาจากWikipediaที่ผู้คนสามารถใช้เพื่อตอบคำถามเหล่านี้: ในตัวอย่างนี้OrderItemถูกสร้างแบบจำลองเป็นเอนทิตี้ที่อ่อนแอ แต่ฉันไม่เข้าใจว่าทำไมมันไม่สามารถสร้างโมเดลเป็นเอนทิตีปกติได้ คำถามอื่นคือถ้าฉันต้องการติดตามประวัติการสั่งซื้อ (เช่นการเปลี่ยนแปลงในสถานะนั้น) ที่จะเป็นนิติบุคคลปกติหรืออ่อนแอ?

2
มีการแยกวิเคราะห์ข้อมูลภาษาธรรมชาติที่คงอยู่
ฉันเพิ่งเริ่มทดลองใช้การประมวลผลภาษาธรรมชาติ (NLP) โดยใช้CoreNLP ของ Stanfordและฉันสงสัยว่าวิธีมาตรฐานในการจัดเก็บ NLP แยกวิเคราะห์ข้อมูลสำหรับแอปพลิเคชันการทำเหมืองข้อความคืออะไร วิธีหนึ่งที่ฉันคิดว่าน่าสนใจก็คือเก็บเด็กไว้ในรายการ adjacency และใช้ประโยชน์จากแบบสอบถามแบบเรียกซ้ำ (Postgres สนับสนุนสิ่งนี้และฉันคิดว่ามันใช้ได้ดีจริงๆ) แต่ฉันคิดว่าอาจมีวิธีมาตรฐานหลายวิธีในการทำเช่นนี้ขึ้นอยู่กับประเภทของการวิเคราะห์ที่ได้รับการรับรองจากคนที่ทำงานในสาขานี้มาหลายปี ดังนั้นกลยุทธ์การติดตามาตรฐานสำหรับข้อมูลที่แยกวิเคราะห์ NLP คืออะไรและมีการใช้งานอย่างไร

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