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

5
มีชื่อสำหรับสกีมาฐานข้อมูลนี้ของค่าคีย์หรือไม่?
เราประมวลผลฟีดข้อมูลประจำจากลูกค้าที่เพิ่งปรับโครงสร้างฐานข้อมูลของพวกเขาจากรูปแบบที่ดูเหมือนคุ้นเคย (หนึ่งแถวต่อเอนทิตี้หนึ่งคอลัมน์ต่อแอตทริบิวต์) ไปยังอันที่ดูเหมือนฉันไม่คุ้นเคย (หนึ่งแถวต่อเอนทิตีต่อแอตทริบิวต์): ก่อนหน้า: หนึ่งคอลัมน์ต่อแอตทริบิวต์ ID Ht_cm wt_kg Age_yr ... 1 190 82 43 ... 2 170 60 22 ... 3 205 90 51 ... หลัง: หนึ่งคอลัมน์สำหรับแอตทริบิวต์ทั้งหมด ID Metric Value 1 Ht_cm 190 1 Wt_kg 82 1 Age_yr 43 1 ... 2 Ht_cm 170 2 Wt_kg 60 2 Age_yr …

5
วิธีเพิ่มประสิทธิภาพ SELECT ช้ามากด้วย LEFT JOIN บนตารางขนาดใหญ่
ฉัน googling ให้การศึกษาด้วยตนเอง & กำลังมองหาวิธีแก้ปัญหาเป็นเวลาหลายชั่วโมง แต่ไม่มีโชค ฉันพบคำถามที่คล้ายกันสองสามข้อที่นี่ แต่ไม่ใช่กรณีนี้ ตารางของฉัน: คน (ประมาณ 10M แถว) แอตทริบิวต์ (สถานที่, อายุ, ... ) ลิงก์ (M: M) ระหว่างบุคคลและแอตทริบิวต์ (ประมาณ 40M แถว) ดัมพ์เต็ม ~ 280MB สถานการณ์: ฉันพยายามเลือกรหัสบุคคลทั้งหมด ( person_id) จากบางสถานที่ ( location.attribute_value BETWEEN 3000 AND 7000) เป็นเพศ ( gender.attribute_value = 1) เกิดในบางปี ( bornyear.attribute_value BETWEEN 1980 AND …

2
ทางเลือก EAV สำหรับฟิลด์แบบไดนามิกในคลังข้อมูลสคีมา
ฉันต้องการสนับสนุนฟิลด์และค่าแบบไดนามิกในคลังข้อมูลขนาดใหญ่สำหรับจัดเก็บบันทึกคำขอ API กรณีผู้ใช้ของฉันคือฉันต้องเก็บสตริงแบบสอบถามคำขอ API ทั้งหมดและสามารถดำเนินการค้นหากับพวกเขาในอนาคต (ดังนั้นจึงไม่ใช่แค่การจัดเก็บ ดังนั้นฉันไม่สามารถใช้หยดสำหรับพวกเขา) เช่น http://example.com/?action=test&foo=abc&bar=def... ฉันต้องเก็บการfield => valueแมปทั้งหมดเช่น(action => test), (foo => abc), (bar => def)และเนื่องจากฟิลด์นั้นเป็นแบบไดนามิกวิธีแก้ปัญหาเดียวที่ฉันได้พบคือการใช้เอนทิตี - แอตทริบิวต์ - ค่า - อย่างไรก็ตามผู้คนพูดว่ามันเป็นการออกแบบที่แย่มาก ดังนั้นให้พิจารณากรณีการใช้งานของฉันด้านบนสิ่งที่จะเป็นทางเลือกที่เหมาะสมกับ EAV? สคีมาปัจจุบันของฉันโดยใช้ KAV ตารางrequests (id, timestamp, uri) เช่น(1, 149382220, '/') ตารางparams (request_id, key, value) เช่น(1, 'action', 'test'), (1, 'foo', 'abc'), (1, 'bar', 'def') …

3
การออกแบบสคีมาสำหรับผลิตภัณฑ์ที่มีหลายรูปแบบ / คุณลักษณะ?
ฉันใช้ MySQL แนวคิดนี้คล้ายกับ shopify ด้วยแนวคิดที่แตกต่างกันดังนั้นผู้ใช้จะเพิ่มผลิตภัณฑ์ของตัวเองด้วยตัวแปรและคุณลักษณะหลายประเภท จากการวิจัยทั้งหมดที่ฉันทำไปแล้วดูเหมือนจะเป็นทางออกที่ดีที่สุดสำหรับฉันและฉันแค่สงสัยว่ามีอะไรผิดปกติกับสคีมาดังต่อไปนี้และอัพไซด์ / ข้อเสียคืออะไร? ขอบคุณ Table: products ------------------------------ | ID | ProductName | |----------------------------| | 1 | Leather Wallet Case | | 2 | Jeans | | 3 | Power Bank | Table: products_variants ------------------------------- | ID | ProductId | ParentId | Variant | VariantName | …

4
วิธีที่เหมาะสมในการจัดเก็บค่าที่อาจแตกต่างกันหลายประเภท
ฉันมีตารางคำตอบและตารางคำถาม ตารางคำตอบมีค่า แต่ขึ้นอยู่กับคำถามที่ว่าค่านี้อาจจะเป็นbit, nvarcharหรือnumber(ไกล) คำถามที่มีความคิดของสิ่งที่คำตอบประเภทค่าตั้งใจที่ควรจะเป็น การแยกวิเคราะห์ค่าคำตอบเหล่านี้จะต้องมีความสำคัญเนื่องจากจะต้องเปรียบเทียบอย่างน้อยหนึ่งตัวเลข สำหรับบริบทเพิ่มเติมอีกเล็กน้อยคำถามและคำตอบที่เป็นไปได้ (โดยทั่วไปคือประเภทข้อมูลที่อนุญาตให้ป้อนข้อมูลประเภทกล่องข้อความ) ได้รับการจัดทำโดยผู้ใช้บางรายในการสำรวจเรียงลำดับ คำตอบนั้นจะได้รับจากผู้ใช้ที่ระบุรายอื่น ตัวเลือกสองสามอย่างที่ฉันพิจารณาคือ: A. XML หรือสตริงที่ได้รับการวิเคราะห์คำแตกต่างกันไปขึ้นอยู่กับประเภทที่ต้องการ (ซึ่งถูกติดตามในคำถาม) B. ตารางที่แยกต่างหากสามตารางที่อ้างอิง (หรืออ้างอิงโดย) ตารางตอบรับและเข้าร่วมตามประเภทที่ต้องการ ในกรณีนี้ฉันไม่แน่ใจว่าวิธีที่ดีที่สุดในการตั้งค่าข้อ จำกัด เพื่อให้แน่ใจว่าคำถามแต่ละข้อมีคำตอบเดียวเท่านั้นหรือควรทิ้งไว้ในแอปพลิเคชัน C. สามคอลัมน์แยกกันในตาราง Answer ที่สามารถดึงข้อมูลได้ตามประเภทที่ต้องการ ฉันยินดีที่จะได้รับข้อมูลเกี่ยวกับข้อดีข้อเสียของวิธีการเหล่านี้หรือวิธีการอื่นที่ฉันไม่ได้พิจารณา

3
โครงสร้างฐานข้อมูลสินค้าคงคลังเมื่อรายการสินค้าคงคลังมีแอตทริบิวต์ที่แตกต่างกัน
ฉันกำลังสร้างฐานข้อมูลสินค้าคงคลังเพื่อจัดเก็บข้อมูลฮาร์ดแวร์ขององค์กร อุปกรณ์ที่ฐานข้อมูลติดตามนั้นมีตั้งแต่เวิร์กสเตชันแล็ปท็อปสวิตช์เราเตอร์โทรศัพท์มือถือ ฯลฯ ฉันใช้หมายเลขซีเรียลของอุปกรณ์เป็นคีย์หลัก ปัญหาที่ฉันมีคือคุณสมบัติอื่น ๆ ของอุปกรณ์เหล่านี้แตกต่างกันไปและฉันไม่ต้องการให้มีฟิลด์ในตารางสินค้าคงคลังที่ไม่เกี่ยวข้องกับอุปกรณ์อื่น ด้านล่างคือลิงค์ไปยัง ERD ของส่วนหนึ่งของฐานข้อมูล (ความสัมพันธ์ FK บางอย่างไม่แสดง) ฉันกำลังพยายามตั้งค่าตัวอย่างเช่นอุปกรณ์ที่มีประเภทอุปกรณ์เวิร์กสเตชันไม่สามารถใส่ลงในตารางโทรศัพท์ ดูเหมือนว่าจะต้องมีการใช้ทริกเกอร์จำนวนมากเพื่อตรวจสอบประเภทอุปกรณ์หรือคลาสและตารางใหม่ทุกครั้งที่มีการติดตามอุปกรณ์ที่แตกต่างกันที่มีคุณลักษณะแตกต่างกัน ฉันค้นหาการตั้งค่าตารางคุณลักษณะที่สามารถแมปกับหมายเลขซีเรียลได้ แต่จะอนุญาตให้แอททริบิวที่ไม่ใช้กับประเภทอุปกรณ์ที่จะกำหนดให้กับอุปกรณ์เช่นใครบางคนสามารถกำหนดแอตทริบิวต์หมายเลขโทรศัพท์ให้กับเวิร์กสเตชันได้หากต้องการ . ฉันพบคำอธิบายเกี่ยวกับเว็บไซต์นี้ที่ให้โครงสร้างดังต่อไปนี้: โครงสร้างนี้จะใช้งานได้ดีหากคุณลักษณะทั้งหมดนั้นใช้ได้กับรายการที่ฉันจัดเก็บ ตัวอย่างเช่นหากฐานข้อมูลจัดเก็บเฉพาะโทรศัพท์มือถือแอตทริบิวต์อาจเป็นสิ่งต่าง ๆ เช่นหน้าจอสัมผัสแทร็คแพดคีย์บอร์ด 4G และ 3G ... อะไรก็ได้ ในกรณีนั้นพวกเขาทั้งหมดใช้กับโทรศัพท์ ฐานข้อมูลของฉันจะมีคุณลักษณะเช่นชื่อโฮสต์, circuitType, phoneNumber ซึ่งใช้กับอุปกรณ์ประเภทเฉพาะเท่านั้น ฉันต้องการตั้งค่าเพื่อให้สามารถกำหนดแอททริบิวที่ใช้กับประเภทอุปกรณ์ที่กำหนดให้กับอุปกรณ์ประเภทนั้นเท่านั้น คำแนะนำใด ๆ เกี่ยวกับวิธีการตั้งค่าฐานข้อมูลนี้? ฉันไม่แน่ใจว่านี่เป็นการใช้ความสัมพันธ์แบบหนึ่งต่อหนึ่งหรือไม่หรือถ้ามีวิธีที่ดีกว่าในการทำเช่นนี้ ขอบคุณล่วงหน้าที่สละเวลาในการตรวจสอบเรื่องนี้ นี่คือกระทู้อื่น ๆ ที่ฉันอ่าน พวกเขาให้ข้อมูลเชิงลึกที่ดีแก่ฉัน แต่ฉันไม่คิดว่าพวกเขาจะนำไปใช้จริง: /programming/9335548/how-to-structure-database-for-inventory-of-unlike-items /programming/1249632/database-structure-for-items-with-varying-attributes /programming/5559587/product-inventory-with-multiple-attributes /programming/6613802/question-about-setting-up-inventory-database /programming/514111/how-to-best-represent-items-with-variable-of-attributes-in-a-database
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.