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

3
การใช้ชนิดย่อยของชนิดย่อยในรูปแบบการออกแบบชนิด / ชนิดย่อยที่มีคลาสย่อยเฉพาะซึ่งกันและกัน
บทนำ เพื่อให้คำถามนี้มีประโยชน์สำหรับผู้อ่านในอนาคตฉันจะใช้ตัวแบบข้อมูลทั่วไปเพื่อแสดงปัญหาที่ฉันเผชิญ รูปแบบข้อมูลของเราประกอบด้วย 3 หน่วยงานซึ่งจะต้องได้รับการระบุว่าเป็นA, และB Cเพื่อให้ทุกอย่างง่ายขึ้นคุณลักษณะทั้งหมดของพวกเขาจะเป็นintประเภท Entity Aมีแอตทริบิวต์ต่อไปนี้: D, EและX; Entity Bมีแอตทริบิวต์ต่อไปนี้: D, EและY; เอนทิตีCมีคุณสมบัติดังต่อไปนี้: DและZ; เนื่องจากเอนทิตีทั้งหมดใช้แอตทริบิวต์ร่วมกันDฉันจึงตัดสินใจใช้การออกแบบชนิด / ชนิดย่อย ข้อสำคัญ: เอนทิตีเป็นเอกสิทธิ์เฉพาะบุคคล! หมายความว่าเอนทิตีนั้นเป็น A หรือ B หรือ C ปัญหา: หน่วยงานAและBมีอีกแอตทริบิวต์ทั่วไปแต่แอตทริบิวต์นี้ไม่ได้อยู่ในกิจการEC คำถาม: ฉันต้องการใช้คุณลักษณะที่อธิบายข้างต้นเพื่อเพิ่มประสิทธิภาพการออกแบบของฉันถ้าเป็นไปได้ ความจริงแล้วฉันไม่รู้ว่าจะทำอย่างไรและจะเริ่มต้นอย่างไรจึงจะโพสต์นี้

4
การออกแบบที่ดีที่สุดในการอ้างอิงหลายตารางจากคอลัมน์เดียว?
สคีมาที่เสนอ ก่อนอื่นนี่คือตัวอย่างของสคีมาที่ฉันเสนอเพื่ออ้างอิงตลอดโพสต์ของฉัน: Clothes ---------- ClothesID (PK) INT NOT NULL Name VARCHAR(50) NOT NULL Color VARCHAR(50) NOT NULL Price DECIMAL(5,2) NOT NULL BrandID INT NOT NULL ... Brand_1 -------- ClothesID (FK/PK) int NOT NULL ViewingUrl VARCHAR(50) NOT NULL SomeOtherBrand1SpecificAttr VARCHAR(50) NOT NULL Brand_2 -------- ClothesID (FK/PK) int NOT NULL PhotoUrl VARCHAR(50) …

4
วิธีสร้างแบบจำลองการสืบทอดของสองตาราง MySQL
ฉันมีตารางบางส่วนที่ฉันเก็บข้อมูลและขึ้นอยู่กับประเภทของบุคคล (คนงานพลเรือน) ที่ทำงานฉันต้องการเก็บไว้ในeventตารางตอนนี้พวกเหล่านี้ช่วยสัตว์ (มีanimalโต๊ะ) ในที่สุดฉันต้องการโต๊ะเพื่อเก็บเหตุการณ์ที่ผู้ชาย (คนงานพลเรือน) ช่วยชีวิตสัตว์ แต่ฉันควรเพิ่มกุญแจต่างประเทศหรือคำนับให้รู้ถึงidคุณค่าของพลเรือนหรือคนงานที่ทำงานนั้นหรือไม่? ตอนนี้ในการออกแบบนี้ฉันไม่ทราบวิธีการที่เกี่ยวข้องกับคนที่ทำงานถ้าฉันจะมีเพียงคนชนิด (พลเรือนหรือพลเรือน) ฉันจะเก็บcivil_idหุบเขาไว้ในpersonคอลัมน์ในตารางสุดท้ายนี้ แต่วิธีการ รู้ว่ามันเป็นทางแพ่งหรือคนงานฉันต้องการโต๊ะ "กลาง" อื่น ๆ หรือไม่? จะสะท้อนการออกแบบไดอะแกรมต่อไปนี้ใน MySQL ได้อย่างไร? รายละเอียดเพิ่มเติม ฉันสร้างแบบจำลองด้วยวิธีต่อไปนี้: DROP TABLE IF EXISTS `tbl_animal`; CREATE TABLE `tbl_animal` ( id_animal INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(25) NOT NULL DEFAULT "no name", specie VARCHAR(10) NOT NULL DEFAULT …

3
การสร้างแบบจำลองสถานการณ์ที่ศิลปินเพลงแต่ละคนเป็นกลุ่มหรือนักดนตรีเดี่ยว
ฉันต้องออกแบบแผนภาพความสัมพันธ์เอนทิตี (ERD) สำหรับบริบททางธุรกิจที่เกี่ยวข้องกับการแบ่งศิลปินเพลงเพราะฉันจะให้รายละเอียดด้านล่าง คำอธิบายสถานการณ์ ศิลปินมีชื่อและต้องเป็นอย่างใดอย่างหนึ่งกลุ่ม หรือดนตรีเดี่ยว ( แต่ไม่ทั้งสอง) กลุ่มถูกสร้างขึ้นจากหนึ่งหรือมากกว่านักแสดงคนเดียวและมีจำนวนสมาชิก (ซึ่งควรจะคำนวณจากจำนวนที่แสดงเดี่ยวทำขึ้นกลุ่ม ) Solo Performerอาจจะเป็นสมาชิกของหลายกลุ่มหรือไม่กลุ่มและอาจจะเล่นหนึ่งหรือมากกว่าเครื่องดนตรี คำถาม วิธีการสร้าง ERD เพื่อเป็นตัวแทนของสถานการณ์ดังกล่าว? ฉันสับสนกับส่วน 'หรือ' ของมัน

2
ฉันควรสร้างแบบจำลองความสัมพันธ์“ หรือ /” อย่างไร
ว่าฉันมีนิติบุคคลชื่อ Software และสองประเภทย่อย FreeSoftware และ NonFreeSoftware เอนทิตี NonFreeSoftware มีคุณสมบัติเช่นวันที่ซื้อ, ผู้ขาย, ฯลฯ เอนทิตี FreeSoftware มีคุณสมบัติเช่นใบอนุญาต, URL ของซอร์สโค้ดเป็นต้น ดังนั้นหากฉันต้องการสร้างแบบจำลองเอนทิตีอื่นระบบปฏิบัติการฉันควรทำอย่างไร? มีความสัมพันธ์แบบ "เป็น" กับซอฟต์แวร์ แต่ความสัมพันธ์แบบ "หรือ" กับ FreeSoftware และ NonFreeSoftware ฉันคิดว่าฉันขาดอะไรบางอย่างในแบบที่ฉันวิเคราะห์ลำดับชั้นนี้

2
วิธีสร้างแบบจำลองประเภทเอนทิตีที่สามารถมีชุดคุณสมบัติที่แตกต่างกันได้อย่างไร
ฉันมีปัญหาบางอย่างในการสร้างฐานข้อมูลที่มีอย่างใดอย่างหนึ่งต่อหลาย (1: M) ความสัมพันธ์ระหว่างผู้ใช้และรายการ ตรงไปตรงมานี้ใช่ อย่างไรก็ตามแต่ละรายการเป็นของบางประเภท (เช่นรถเป็นเรือหรือเครื่องบิน ) และแต่ละประเภทมีจำนวนโดยเฉพาะอย่างยิ่งของคุณลักษณะเช่น: Car โครงสร้าง: +----+--------------+--------------+ | PK | Attribute #1 | Attribute #2 | +----+--------------+--------------+ Boat โครงสร้าง: +----+--------------+--------------+--------------+ | PK | Attribute #1 | Attribute #2 | Attribute #3 | +----+--------------+--------------+--------------+ Plane โครงสร้าง: +----+--------------+--------------+--------------+--------------+ | PK | Attribute #1 | Attribute #2 | …

4
Supertype / Subtype ตัดสินใจเลือกระหว่างหมวดหมู่: ทำไม่ต่อเนื่องหรือทับซ้อนกันไม่สมบูรณ์
ฉันกำลังสร้างฐานข้อมูลสินค้าคงคลังที่เก็บฮาร์ดแวร์ไอทีเช่นคอมพิวเตอร์เดสก์ท็อปแล็ปท็อปสวิตช์เราเตอร์โทรศัพท์มือถือ ฯลฯ ฉันใช้รูปแบบ supertype / subtype ที่เก็บอุปกรณ์ทั้งหมดไว้ในตารางเดียวและข้อมูลเฉพาะ ใส่ลงในตารางย่อย กระอักกระอ่วนของฉันคือการเลือกระหว่างสองแบบต่อไปนี้: ในแผนภาพด้านบนอุปกรณ์ทั้งหมดแบ่งปันชนิดย่อยทั่วไป ตัวอย่างเช่นคอมพิวเตอร์เดสก์ท็อปและแล็ปท็อปจะมีระเบียนในตารางต่อไปนี้: อุปกรณ์, NetworkDevice สวิตช์จะมีระเบียนเป็น: อุปกรณ์, NetworkDevice เราเตอร์จะมีระเบียนใน: อุปกรณ์, NetworkDevice, WANDevice อุปกรณ์ใด ๆ ที่เราติดตามตำแหน่งจะมีการบันทึกในตำแหน่ง ข้อดีและข้อเสียบางประการที่ฉันคิดไว้สำหรับการตั้งค่านี้: Pro: การเลือกระเบียนตามเขตข้อมูลทั่วไปเช่นชื่อโฮสต์หรือ LocationID นั้นง่ายกว่า Pro: ไม่มีช่องว่าง คอนดิชั่น: ตารางที่ควรรวมอยู่ในการดำเนินการ CRUD สำหรับอุปกรณ์เฉพาะนั้นไม่ชัดเจนและอาจสร้างความสับสนใน DBAs ในอนาคต ในแผนภาพด้านล่างอุปกรณ์ทั้งหมดมีประเภทย่อยของตัวเอง (มีอุปกรณ์มากกว่าคลาสที่ไม่แสดงที่นี่) ในสถานการณ์เช่นนี้จะเห็นได้ชัดว่าระเบียนใดได้รับการแทรกหรือเลือกจากตาราง คอมพิวเตอร์เดสก์ท็อปและแล็ปท็อปไปที่คอมพิวเตอร์ ฯลฯ ข้อดีและข้อเสียบางประการที่ฉันคิดไว้สำหรับการตั้งค่านี้: Pro: เป็นที่ชัดเจนทันทีว่าตารางใดที่จะใช้สำหรับการดำเนินการ CRUD สำหรับชนิดย่อย Pro: ต้องใช้เพียงหนึ่งตารางสำหรับการดำเนินการ CRUD คอนดิชั่น: …

4
ไม่ทราบวิธีเปลี่ยนเอนทิตีของตัวแปรเป็นตารางสัมพันธ์
ข้อมูลเบื้องต้นและข้อมูลที่เกี่ยวข้อง: ตัวอย่างต่อไปนี้แสดงให้เห็นถึงปัญหาที่ฉันเผชิญ: สัตว์มีการแข่งขันซึ่งอาจจะเป็นแมวหรือสุนัข แมวสามารถเป็นได้ทั้งสยามหรือเปอร์เซีย สุนัขอาจจะเป็นคนเลี้ยงแกะเยอรมันหรือลาบราดอร์ retriver สัตว์เป็นหน่วยงานที่แข็งแกร่งในขณะที่การแข่งขันเป็นคุณลักษณะที่สามารถมีหนึ่งในสองค่าที่เสนอ (แมวหรือสุนัข) ค่าทั้งสองนี้ซับซ้อน (ฉันได้เพิ่มที่นี่เฉพาะประเภทของสุนัข / แมวเพื่ออธิบายปัญหา แต่อาจมีชื่อของแมว / สุนัขและสิ่งอื่น ๆ อีกมากมาย) ปัญหา: ฉันไม่ทราบวิธีสร้างตารางเชิงสัมพันธ์สำหรับตัวอย่างนี้ ความพยายามของฉันในการแก้ไขปัญหา: ฉันพยายามวาดแผนภาพ ER โดยใช้สัญลักษณ์ของเฉินซึ่งแสดงถึงปัญหา แต่เป็นมือใหม่ฉันไม่รู้ว่าทำถูกหรือไม่ นี่คือสิ่งที่ฉันได้รับ: ฉันขอโทษถ้าฉันทำอะไรผิดโปรดแก้ไขให้ฉันด้วยถ้าเป็นเช่นนั้น ฉันไม่ต้องการเพียงแค่รับ "วิธีแก้ปัญหาฟรี" แต่ยังต้องเรียนรู้วิธีจัดการกับปัญหานี้เพื่อที่ฉันจะสามารถแก้ไขได้ด้วยตัวเองในอนาคต สิ่งเดียวที่อยู่ในใจของฉันคือการสร้างสองตารางแยกต่างหากหนึ่งสำหรับแมวและหนึ่งสำหรับสุนัข นอกจากนี้แอตทริบิวต์การแข่งขันในตารางAnimalจะเก็บค่าแมวหรือค่าสุนัขเท่านั้น บางสิ่งเช่นนี้ Animal< # Animal_ID, race, other attributes > Cat < # Cat_ID, $ Animal_ID, breed > Dog < # …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.