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

สำหรับคำถามเกี่ยวกับการจัดโครงสร้างข้อมูลภายในฐานข้อมูล วิธีการจัดเค้าโครงตารางไม่ว่าจะใช้ฐานข้อมูลเชิงสัมพันธ์หรือไม่เป็นต้น

5
วิธีการที่คล่องตัวและฐานข้อมูลที่จุดเริ่มต้นของโครงการ
ใหม่เพื่อความคล่องตัวและฉันไม่แน่ใจว่าจะเริ่มอย่างไร ความคิดคือการสร้างส่วนเล็ก ๆ ของโครงการในการวิ่ง อย่างไรก็ตามโครงการที่ฉันทำงานอยู่ต้องใช้ฐานข้อมูลและฐานข้อมูลจะต้องใช้งานได้เกือบทุกอย่างเพื่อทำสิ่งต่างๆกับโครงการ ดังนั้นโปรเจ็กต์ Agile จัดการกับสิ่งนี้อย่างไรคุณเริ่มต้นด้วยการสร้างฐานข้อมูลหรือไม่ คุณจะทำอย่างไรเช่นใช้ Scrum คุณจะทำเรื่องราวของผู้ใช้อย่างไรและทดสอบ db คุณต้องการทำบางส่วนของ db ในเรื่องที่ต้องใช้รหัสด้วยหรือไม่ สมมติว่าคุณมีเรื่องราวที่เป็น "ในฐานะผู้ใช้คุณต้องลงทะเบียน ... " คุณจะสร้างตารางผู้ใช้ในฐานข้อมูลเป็นส่วนหนึ่งของเรื่องนี้หรือไม่? ว่องไวจะช่วยคุณออกแบบฐานข้อมูลได้อย่างไร?

4
การจัดเก็บข้อมูลแบบกรัม
ฉันหวังว่าจะระดมสมองเล็กน้อยเกี่ยวกับเรื่องการจัดเก็บข้อมูลn -gram ในโครงการของฉันฉันพยายามในการแก้ปัญหาทางภาษาที่ฉันรู้ทั้งหมด ( nรายการ -1) ข้อมูลและต้องการที่จะคาดเดาสถิติของฉันnใช้สอดแทรกเชิงเส้นมากกว่าที่บังคับใช้ทั้งหมดn -grams (ใช่มีตัวแท็กเกอร์ที่กำหนดแท็กให้กับคำที่รู้จักตามพจนานุกรมและต้นไม้ต่อท้ายที่พยายามเดาชนิดคำสำหรับคำที่ไม่รู้จัก; องค์ประกอบn -gram ที่กล่าวถึงที่นี่จะได้รับมอบหมายด้วยการแก้ไขความคลุมเครือ) วิธีการเริ่มต้นของฉันคือการเก็บข้อมูลn -grams (สำหรับn = 1..3 ที่สังเกตได้ทั้งหมดคือ monogram, bigram, trigram) ในฐานข้อมูล SQL ที่เกี่ยวข้องและเรียกมันต่อวัน แต่ข้อกำหนดของโครงการของฉันอาจเปลี่ยนเป็นความยาวเวกเตอร์อื่น ๆ ( n ) และฉันต้องการให้แอปพลิเคชันของฉันปรับให้เหมาะกับ 4 กรัมโดยไม่ต้องทำงานมาก (อัปเดตสคีมาอัปเดตรหัสแอปพลิเคชัน ฯลฯ ); นึกคิดฉันจะบอกให้แอปพลิเคชันของฉันทำงานด้วย 4 กรัมในขณะนี้โดยไม่ต้องเปลี่ยนรหัสมาก (หรือเลย) และฝึกอบรมข้อมูลจากแหล่งข้อมูลที่กำหนด เพื่อสรุปข้อกำหนดทั้งหมด: ความสามารถในการเก็บข้อมูลn -gram (เริ่มแรกสำหรับn = {1, 2, 3} ความสามารถในการเปลี่ยนชนิดของn -grams …

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

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

2
การจัดการการสมัครสมาชิกยอดคงเหลือและการเปลี่ยนแปลงแผนการกำหนดราคา [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว คำนำ เป้าหมายของฉันคือการสร้างรหัสที่สามารถใช้ซ้ำได้สำหรับหลายโครงการ (และเผยแพร่บน GitHub) เพื่อจัดการการสมัครสมาชิก ฉันรู้เกี่ยวกับผู้ให้บริการการเรียกเก็บเงินแบบสไทรพ์และเกิดซ้ำ แต่นั่นไม่ใช่สิ่งที่โมดูลนี้มีเป้าหมาย มันควรจะเป็น wrapper / helper สำหรับการคำนวณยอดคงเหลือในบัญชีการแจ้งเตือนง่าย ๆ ในการต่ออายุการสมัครและจัดการการคำนวณราคา มีหลายประเทศที่คุณไม่สามารถใช้การเรียกเก็บเงินที่เกิดขึ้นเนื่องจากผู้ให้บริการหรือความเป็นไปได้ในการชำระเงินที่มีการสนับสนุนต่ำหรือไม่มีการสนับสนุนหรือมีราคาแพงเกินไป (micropayments) และมีคนที่ไม่ต้องการใช้การเรียกเก็บเงินที่เกิดขึ้นประจำ แต่ชำระค่าใช้จ่ายด้วยตนเอง / avingg ใบแจ้งหนี้ ณ สิ้นปี ดังนั้นโปรดอย่าแนะนำการเรียกเก็บเงินแบบจ่ายซ้ำ PayPal หรือบริการที่คล้ายกันซ้ำ ๆ สถานการณ์ สมมติว่าคุณมีรูปแบบที่สามารถสมัครเป็นสมาชิกแผน (เช่นUser) โมเดลนี้มีฟิลด์ที่เก็บตัวบ่งชี้ของแผนการสมัครสมาชิกที่เป็นสมาชิกในปัจจุบัน ดังนั้นในการเปลี่ยนแปลงแผนทุกครั้งการเปลี่ยนแปลงจะถูกบันทึกไว้ มีโมเดล (เช่นSubscriptionPlanChanges) ที่มีฟิลด์ต่อไปนี้บันทึกการเปลี่ยนแปลงที่กล่าวถึง: subscriberเกี่ยวข้องกับรูปแบบการสมัคร ( Userในกรณีนี้) from_plan การกำหนดตัวระบุแผนที่โมเดลมีไว้ก่อนการเปลี่ยนแปลง to_plan การกำหนดตัวระบุแผนรุ่นที่เลือกไว้ตอนนี้ created_at …

3
เมื่อเข้าถึง / จัดการกับข้อมูลที่ซับซ้อนควรเก็บไว้เป็นชิ้นเล็ก ๆ หรือก้อนใหญ่ก้อนเดียวดีกว่าไหม
ฉันกำลังสร้างเว็บแอปที่จัดการกับข้อมูลที่ค่อนข้างซับซ้อน: แท็บกีต้าร์ As a reference, guitar tabs look like this: Eb|-------------------------------------------------------------------------| Bb|-------------------------------------------------------------------------| Gb|--5-5-5-5----------------------------------------------------------------| Db|--5-5-5-5--3-3-3-3--7-7-7-7--5-5-5-5--2-2-2-2--3-3-3-3--2-2-2-2--5-5-5-5-| Ab|--3-3-3-3--3-3-3-3--7-7-7-7--5-5-5-5--2-2-2-2--3-3-3-3--2-2-2-2--5-5-5-5-| Eb|-----------1-1-1-1--5-5-5-5--3-3-3-3--0-0-0-0--1-1-1-1--0-0-0-0--3-3-3-3-| มันจะมีประสิทธิภาพมากขึ้นสำหรับประสิทธิภาพในการจัดเก็บข้อมูลนี้เป็นก้อนขนาดใหญ่หรือทำลายมันและเก็บไว้ใน "บันทึกย่อตามโน้ต"? As a use case: User changes first chord from: to: Eb|--- Eb|--- Bb|--- Bb|--- Gb|--5 Gb|--4 Db|--5 Db|--4 Ab|--3 Ab|--2 Eb|--- Eb|--- หากฉันจัดเก็บเป็นบล็อกรหัสเพื่อจัดการแท็บจะต้องมีความซับซ้อนมากขึ้น หากฉันเก็บบันทึกย่อเป็นบันทึกย่อฐานข้อมูลจะต้องเข้าถึงได้มากขึ้น วิธีใดมีประสิทธิภาพมากกว่า อาจมีผู้ใช้จำนวนมากกำลังแก้ไขข้อมูล ฉันต้องการแอปพลิเคชันเว็บที่ทำงานได้ดีที่สุด ฉันจะใช้ MySQL ถ้ามีผลต่อคำตอบทั้งหมด

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

10
RDBMS จะถูกพิจารณาว่าเป็นแฟชั่นได้อย่างไร?
ทำให้คอมพิวเตอร์ A-level ของฉันเสร็จในปี 2003 และได้รับปริญญาทางคอมพิวเตอร์ในปี 2007 และเรียนรู้การค้าของฉันใน บริษัท ที่มีการใช้งาน SQL จำนวนมากฉันถูกนำเสนอแนวคิดของฐานข้อมูลเชิงสัมพันธ์ที่ใช้สำหรับการจัดเก็บ ดังนั้นแม้จะค่อนข้างใหม่ในการพัฒนาฉันก็ประหลาดใจที่จะอ่านความคิดเห็น (บนhttps://softwareengineering.stackexchange.com/q/89994/12436 ) ที่กล่าวว่า: [บาง devs] ดูถูก [SQL] และคิดว่ามันและ RDBMS เป็นแฟชั่น เห็นได้ชัดว่า dev ที่มีความสามารถจะใช้เครื่องมือที่เหมาะสมสำหรับงานที่เหมาะสมและจะไม่สร้างฐานข้อมูลเชิงสัมพันธ์เมื่อเช่นไฟล์ flat หรือโซลูชันอื่นสำหรับการจัดเก็บมีความเหมาะสม แต่ RDBMs มีประโยชน์ในสถานการณ์จำนวนมากดังนั้นพวกเขาจะเป็นอย่างไร ถือว่าเป็นแฟชั่น?

3
การจัดเก็บรายการเมนูด้วยการอนุญาตของผู้ใช้
ฉันกำลังสร้างระบบเมนูใน PHP และ MySQL ฉันจะมีหลายเมนูที่แตกต่างกันและแต่ละเมนูจะมีชุดของรายการเมนูที่เชื่อมต่ออยู่ บนไซต์ฉันมีสิทธิ์ผู้ใช้ต่างกันผู้ใช้บางคนสามารถดูรายการเมนูทั้งหมดและบางรายการถูกซ่อนจากผู้ใช้บางคน ฉันอยากรู้ว่าฉันจะจัดการสิทธิ์ได้อย่างไรในวิธีที่สะอาดซึ่งจะช่วยให้ผู้ใช้ประเภทอื่น ๆ ในอนาคตสามารถเพิ่มได้อย่างง่ายดาย สิ่งที่ฉันมีจนถึงตอนนี้คืออะไร: ------------------- |Menus ------------------- |id| |display name| ------------------- ---------------------------------------------------------- |Menu items ---------------------------------------------------------- |id| |menu_id| |label| |link| |parent| |sort| |permission| ---------------------------------------------------------- ฉันคิดว่าpermissionคอลัมน์อาจเป็นสตริงที่คั่นด้วยเครื่องหมายจุลภาคที่ฉันสามารถจับคู่กับรหัสการอนุญาตของผู้ใช้ปัจจุบัน มันอาจเป็นการอ้างอิงไปยังตารางอื่นที่กำหนดชุดค่าผสมที่เป็นไปได้ทั้งหมดของสิทธิ์ที่มีอยู่ในปัจจุบัน วิธีแก้ปัญหาหนึ่งก็คือการจัดเก็บรายการเมนูหลายรายการโดยที่ความแตกต่างเพียงอย่างเดียวคือการอนุญาตแม้ว่าสิ่งนี้จะนำไปสู่การจัดเก็บซ้ำซ้อนและอาจเป็นปัญหาในการจัดการ ฉันชอบที่จะได้ยินความคิดบางอย่างเกี่ยวกับวิธีการจัดโครงสร้างนี้และสิ่งที่อาจถือว่าสะอาดแบบไดนามิกและเส็งเคร็ง ขอบคุณ

2
Schema ฐานข้อมูลสำหรับราคาผลิตภัณฑ์ (แพ็คเกจ, โปรโมชั่น, ตามจำนวน, ข้อเสนอเวลา จำกัด ... )
ฉันกำลังทำงานในจุดขายใหม่สำหรับ บริษัท ที่ผลิตภัณฑ์ในราคาที่แตกต่างกันขึ้นอยู่กับส่วนผสมของผลิตภัณฑ์ ผลิตภัณฑ์ทั้งหมดมีราคาฐาน เพื่ออธิบายปัญหาของฉันฉันจะใช้ข้อมูลต่อไปนี้: Product Category Price A 1 45 B 1 70 Q 2 20 R 2 27 S 2 15 X 3 17 Y 3 22 Z 3 16 บริษัท มีแพ็คเกจเช่นแพ็คเกจ "Combo": สำหรับผลิตภัณฑ์ A หรือ B หากคุณเลือก 1 จาก Q หรือ R และ 1 จาก X, Y …

5
ฉันต้องการทริกเกอร์สำหรับฐานข้อมูลเชิงสัมพันธ์เช่น PostgreSQL หรือไม่
ฉันรู้ว่าสามารถใช้ทริกเกอร์เพื่อตรวจสอบข้อมูลที่เก็บไว้เพื่อให้ฐานข้อมูลสอดคล้องกัน อย่างไรก็ตามทำไมไม่ทำการตรวจสอบความถูกต้องของข้อมูลทางด้านแอปพลิเคชันก่อนที่จะจัดเก็บลงในฐานข้อมูล ตัวอย่างเช่นเราเก็บลูกค้าและเราต้องการทำการตรวจสอบบางอย่างที่ไม่สามารถทำได้ในระดับ DDL https://severalnines.com/blog/postgresql-triggers-and-stored-function-basics อีกตัวอย่างหนึ่งคือการตรวจสอบ ปรับปรุง ทริกเกอร์และธุรกรรมฐานข้อมูลทำงานร่วมกันอย่างไร ตัวอย่างเช่นหากฉันต้องการทำการตรวจสอบความถูกต้องของข้อมูลที่ถูกแทรก มันทำภายในการทำธุรกรรม จะเกิดอะไรขึ้นก่อนหน้านี้: การทำธุรกรรมเกิดขึ้นหรือมีการดำเนินการทริกเกอร์

1
โครงสร้างฐานข้อมูลสำหรับเกม 2v2
ฉันเล่นเกม 2v2 กับเพื่อน 12 คนเป็นประจำและฉันต้องการฐานข้อมูลเพื่อติดตามผู้เล่นทีมคะแนนและเกมด้วยความตั้งใจในการสร้างระบบการจัดอันดับ เนื่องจากเราเป็นประจำเปลี่ยนทีมที่ผมเคยเกิดขึ้นกับตารางplayers, teamsและgamesที่เกมมีสองทีม (TEAM1 และ TEAM2) และทีมประกอบด้วยผู้เล่นสองคน (PLAYER1 และ Player2) นี่ทำให้เกิดปัญหาค่อนข้างน้อย - ตัวอย่างเช่นถ้าฉันเลือกผู้เล่นสองคน (เรียกพวกเขาว่าAและB ) ให้เล่นด้วยกันฉันต้องตรวจสอบว่ามีทีมที่ Player1 คือ A และ Player2 คือ B หรือ Player1 คือ B และ Player2 คือ. คอลัมน์gamesและwinsมีอยู่ในทั้งplayersโต๊ะและteamsโต๊ะ - แต่นี่เป็นเพราะฉันต้องการดูว่ามีผู้เล่นกี่คนที่ชนะเกม แต่ยังรวมถึงความเข้ากันได้ของผู้เล่นในทีมที่แตกต่างกัน (ความถี่ที่ผู้เล่นชนะเมื่อเข้าร่วม ผู้เล่นเฉพาะรายอื่น) กระดานคะแนนการจัดอันดับ (ฉันอาจจะใช้ระบบการจัดอันดับ Elo ) หน้าสถิติสำหรับผู้เล่นทุกคนที่มีคะแนนชนะเกมสถิติเกมล่าสุดและผู้เล่นคนไหนที่เข้ากันได้มากที่สุด ฉันสงสัยอย่างยิ่งว่าสิ่งเหล่านี้ส่วนใหญ่ละเมิดหลักการบางอย่างในการปรับฐานข้อมูลให้เป็นมาตรฐาน

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

3
แหล่งข้อมูลใดดีที่สุดสำหรับสถานการณ์ของฉัน
ฉันกำลังทำงานกับแอปพลิเคชันที่เกี่ยวข้องกับการเรียกใช้คิวรีแบบเลือกใช้ / อัปเดตในฐานข้อมูล ฉันมีตารางฐาน (A) ซึ่งจะมีระเบียนประมาณ 500 รายการสำหรับหนึ่งวัน และสำหรับผู้ใช้ทุกคนในระบบรูปแบบของเอนทิตีนี้จะถูกสร้างขึ้นตามการตั้งค่าบางอย่างของผู้ใช้และพวกเขาจะถูกเก็บไว้ในตารางอื่น (B) ทำได้โดยงาน cron ที่ทำงานตอนเที่ยงคืนทุกวัน ดังนั้นหากมี 10,000 ผู้ใช้และ 500 บันทึกในตาราง A จะมีระเบียน 5M ในตาราง B สำหรับวันนั้น ฉันมักจะเก็บข้อมูลเป็นเวลาหนึ่งวันในตารางเหล่านี้และในเวลาเที่ยงคืนฉันจะเก็บข้อมูลประวัติเพื่อ HBase การตั้งค่านี้ทำงานได้ดีและฉันไม่มีปัญหาด้านประสิทธิภาพมาก่อน มีการเปลี่ยนแปลงข้อกำหนดทางธุรกิจเมื่อไม่นานมานี้และตอนนี้คุณลักษณะบางอย่างในตารางฐาน A (สำหรับ 15 - 20 บันทึก) จะเปลี่ยนทุก ๆ 20 วินาทีและขึ้นอยู่กับว่าฉันต้องคำนวณค่าบางอย่างสำหรับบันทึกชุดรูปแบบทั้งหมดในตาราง B สำหรับ ผู้ใช้ทั้งหมด. แม้ว่าจะมีการเปลี่ยนแปลงเรคคอร์ดหลักเพียง 20 รายการ แต่ฉันต้องทำการคำนวณใหม่และอัปเดตระเบียนผู้ใช้ 200,000 รายการซึ่งใช้เวลามากกว่า 20 วินาทีจากนั้นการอัปเดตครั้งต่อไปก็เกิดขึ้นในที่สุดจึงทำให้คิวรี Select …

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

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