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

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

12
มันเป็นการปฏิบัติที่ไม่ถูกต้องหรือไม่ที่จะเก็บไฟล์ขนาดใหญ่ (10 MB) ไว้ในฐานข้อมูล?
ขณะนี้ฉันกำลังสร้างเว็บแอปพลิเคชันที่อนุญาตให้ผู้ใช้จัดเก็บและแชร์ไฟล์ขนาด 1 MB - 10 MB สำหรับฉันแล้วดูเหมือนว่าการจัดเก็บไฟล์ในฐานข้อมูลจะทำให้การเข้าถึงฐานข้อมูลช้าลงอย่างมาก นี่เป็นข้อกังวลที่ถูกต้องหรือไม่? ควรเก็บไฟล์ไว้ในระบบไฟล์และบันทึกชื่อไฟล์และพา ธ ในฐานข้อมูลหรือไม่? มีแนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับการจัดเก็บไฟล์เมื่อทำงานกับฐานข้อมูลหรือไม่? ฉันทำงานใน PHP และ MySQL สำหรับโครงการนี้ แต่เป็นปัญหาเดียวกันสำหรับสภาพแวดล้อมส่วนใหญ่ ( Ruby on Rails , PHP , .NET ) และฐานข้อมูล (MySQL, PostgreSQL )

9
เคยใช้รายการในฐานข้อมูลเชิงสัมพันธ์หรือไม่?
ฉันพยายามออกแบบฐานข้อมูลเพื่อให้สอดคล้องกับแนวคิดโครงการและพบกับสิ่งที่ดูเหมือนว่าจะเป็นประเด็นถกเถียงกันอย่างถึงพริกถึงขิง ฉันได้อ่านบทความไม่กี่คำและ Stack Overflow บางคำตอบที่ระบุว่าไม่เคย (หรือเกือบจะไม่เคย) ตกลงในการจัดเก็บรายการ ID หรือสิ่งที่ชอบในฟิลด์ - ข้อมูลทั้งหมดควรมีความสัมพันธ์ ฯลฯ อย่างไรก็ตามปัญหาที่ฉันพบคือฉันกำลังพยายามมอบหมายงาน ผู้คนจะสร้างงานมอบหมายให้คนหลายคนและมันจะบันทึกลงในฐานข้อมูล แน่นอนถ้าฉันบันทึกงานเหล่านี้ทีละรายการใน "บุคคล" ฉันจะต้องมีคอลัมน์ "TaskID" หลอกตานับสิบ ๆ ตัวและจัดการแบบไมโครเพราะจะมีงานมอบหมายให้บุคคลหนึ่งถึง 0 ถึง 100 จากนั้นอีกครั้งถ้าฉันบันทึกงานในตาราง "งาน" ฉันจะต้องมีคอลัมน์ "PersonID" หลอกตานับสิบ ๆ ตัวและจัดการกับมันแบบไมโคร - ปัญหาเช่นเดียวกับเมื่อก่อน สำหรับปัญหาเช่นนี้จะเป็นการดีไหมที่จะบันทึกรายการ ID ที่ใช้รูปแบบเดียวหรืออีกรูปแบบหนึ่งหรือฉันไม่คิดวิธีอื่นที่ทำได้โดยไม่ต้องทำลายหลักการ?

7
รหัสแรกเทียบกับฐานข้อมูลก่อน
เมื่อฉันออกแบบและสร้างซอฟต์แวร์ที่ฉันทำงานอยู่ฉันมักจะออกแบบและสร้างตาราง SQL ส่วนหลังก่อนแล้วจึงไปยังการเขียนโปรแกรมจริง โครงการที่ฉันกำลังทำอยู่ทำให้ฉันงงงวย นี่อาจเป็นเพราะการขาดข้อกำหนดที่ดีและมั่นคง แต่น่าเสียดายที่ฉันสามารถทำได้ในครั้งนี้ มันเป็นสถานการณ์แบบ "ไปทำให้มันเกิดขึ้น" แต่ฉันเชือนแช ฉันกำลังคิดที่จะพลิกเวิร์กโฟลว์ของฉันบนหัวและสร้าง UI และคลาสโมเดลข้อมูลเป็นครั้งแรกด้วยความหวังว่าการทำงานที่ออกมาจะทำให้ฉันชัดเจนว่าสคีมาฐานข้อมูลของฉันจะเป็นอย่างไรในที่สุด นี่เป็นความคิดที่ดีหรือไม่? ฉันกังวลว่าฉันจะจบลงด้วย UI และยังไม่ทราบวิธีการจัดทำฐานข้อมูล หากใครอยากรู้ฉันกำลังใช้ SQL Server เป็นแบ็กเอนด์และ MS Access เป็นแอพพลิเคชั่นส่วนหน้า (การเข้าถึงไม่ใช่ตัวเลือกของฉันเช่นกันดังนั้นโปรดอย่าเกลียดมันแย่เกินไป)

6
EAV - มันแย่จริง ๆ ในทุกสถานการณ์หรือไม่?
ฉันคิดว่าจะใช้โมเดลเอนทิตีแอตทริบิวต์ - ค่า (EAV)สำหรับบางสิ่งในโครงการหนึ่ง แต่คำถามทั้งหมดเกี่ยวกับเรื่องนี้ใน Stack Overflowจบลงด้วยคำตอบที่เรียกว่า EAV เป็นรูปแบบการต่อต้าน แต่ฉันสงสัยว่ามันผิดในทุกกรณีหรือไม่ สมมติว่าเอนทิตีผลิตภัณฑ์ของร้านค้ามันมีคุณสมบัติทั่วไปเช่นชื่อคำอธิบายรูปภาพและราคาที่มีส่วนร่วมในหลาย ๆ ตรรกะและมีคุณสมบัติที่เป็นเอกลักษณ์ (กึ่ง) เช่นนาฬิกาและลูกบอลชายหาดจะอธิบายด้วยแง่มุมที่แตกต่างกันโดยสิ้นเชิง ดังนั้นฉันคิดว่า EAV จะเหมาะสำหรับการจัดเก็บคุณลักษณะเฉพาะ (กึ่ง) เหล่านั้น ทั้งหมดนี้เป็นการสมมติว่าสำหรับการแสดงรายการผลิตภัณฑ์มันเป็นข้อมูลที่เพียงพอในตารางผลิตภัณฑ์ (นั่นหมายความว่าไม่มี EAV ที่เกี่ยวข้อง) และเมื่อแสดงผลิตภัณฑ์เดียว / เปรียบเทียบผลิตภัณฑ์สูงสุด 5 รายการ / ฯลฯ ใช้ข้อมูลที่บันทึกโดยใช้ EAV ฉันเคยเห็นวิธีการดังกล่าวในการค้าของวีโอไอพีและค่อนข้างเป็นที่นิยมดังนั้นมีกรณีที่ EAV เหมาะสมหรือไม่

7
ข้อมูลการกำหนดค่า: ตารางแถวเดียวกับตารางคู่ค่าชื่อ
สมมติว่าคุณเขียนแอปพลิเคชันที่ผู้ใช้สามารถกำหนดค่าได้ สำหรับการจัดเก็บ "ข้อมูลการกำหนดค่า" นี้ลงในฐานข้อมูลมักใช้สองรูปแบบ ตารางแถวเดียว CompanyName | StartFullScreen | RefreshSeconds | ... ---------------+-------------------+------------------+-------- ACME Inc. | true | 20 | ... ค่าชื่อคู่โต๊ะ ConfigOption | Value -----------------+------------- CompanyName | ACME Inc. StartFullScreen | true (or 1, or Y, ...) RefreshSeconds | 20 ... | ... ฉันเคยเห็นตัวเลือกทั้งสองในป่าและทั้งสองมีข้อดีและข้อเสียที่เห็นได้ชัดเช่น: ตารางแถวเดี่ยว จำกัด จำนวนตัวเลือกการกำหนดค่าที่คุณสามารถมีได้ (เนื่องจากจำนวนคอลัมน์ในแถวนั้น จำกัด …

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

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

10
เมื่อใดที่คุณจะใช้ ID สตริงยาวแทนที่จะเป็นจำนวนเต็มอย่างง่าย [ปิด]
ฉันต้องการที่จะใช้ Youtube เป็นตัวอย่าง: PEckzwggd78พวกเขาใช้รหัสในรูปแบบของ ทำไมพวกเขาถึงไม่ใช้จำนวนเต็มอย่างง่าย? หรือ imgur.com - พวกเขายังใช้ ID เช่น9b6tMZSรูปภาพและแกลเลอรี่ ไม่ใช่จำนวนเต็มตามลำดับ ทำไมพวกเขาไม่ใช้จำนวนเต็ม (โดยเฉพาะอย่างยิ่งลำดับ) ในสิ่งที่กรณีมันคือการตัดสินใจที่ชาญฉลาดในการใช้รหัสสตริงดังกล่าวแทนจำนวนเต็ม?

8
การจัดเก็บรายการที่สั่งซื้อซ้ำได้ในฐานข้อมูล
ฉันกำลังทำงานกับระบบสิ่งที่ปรารถนาซึ่งผู้ใช้สามารถเพิ่มรายการลงในรายการสิ่งที่ปรารถนาต่าง ๆ ได้และฉันวางแผนที่จะอนุญาตให้ผู้ใช้สั่งซื้อรายการอีกครั้งในภายหลัง ฉันไม่แน่ใจเกี่ยวกับวิธีที่ดีที่สุดในการเก็บข้อมูลนี้ในฐานข้อมูลในขณะที่ยังคงรวดเร็วและไม่เปลี่ยนเป็นระเบียบ (แอพนี้จะถูกใช้โดยฐานผู้ใช้ขนาดใหญ่พอสมควรดังนั้นฉันไม่ต้องการให้ลงไป เพื่อล้างสิ่งต่าง ๆ ) ตอนแรกฉันลองpositionคอลัมน์ แต่ดูเหมือนว่ามันจะไม่มีประสิทธิภาพเลยที่จะต้องเปลี่ยนค่าตำแหน่งของไอเท็มอื่นทุกรายการเมื่อคุณเลื่อนมันไปมา ฉันเคยเห็นคนที่ใช้การอ้างอิงตนเองเพื่ออ้างอิงถึงค่าก่อนหน้า (หรือถัดไป) แต่อีกครั้งดูเหมือนว่าคุณจะต้องอัปเดตรายการอื่น ๆ อีกมากในรายการ วิธีแก้ปัญหาอื่นที่ฉันเห็นคือใช้เลขทศนิยมและติดสิ่งของในช่องว่างระหว่างพวกเขาซึ่งดูเหมือนจะเป็นทางออกที่ดีที่สุด แต่ฉันแน่ใจว่าต้องมีวิธีที่ดีกว่า ฉันจะบอกว่ารายการทั่วไปจะมีมากถึง 20 รายการหรือมากกว่านั้นและฉันอาจจะ จำกัด ไว้ที่ 50 การสั่งซื้อซ้ำจะใช้การลากและวางและอาจทำได้ในแบตช์เพื่อป้องกันสภาพการแข่งขันและจาก คำขอ Ajax ฉันใช้ postgres (ที่ heroku) ถ้าเป็นเรื่องสำคัญ ไม่มีใครมีความคิดใด ๆ ไชโยสำหรับความช่วยเหลือใด ๆ !

13
จำเป็นหรือไม่ในการสร้างฐานข้อมูลที่มีตารางน้อยที่สุด
เราควรสร้างโครงสร้างฐานข้อมูลด้วยจำนวนตารางขั้นต่ำหรือไม่ ควรออกแบบในลักษณะที่ทุกอย่างอยู่ในที่เดียวหรือไม่หรือมีตารางเพิ่มขึ้น? จะมีผลกับสิ่งใดหรือไม่ ฉันถามคำถามนี้เพราะเพื่อนของฉันกำลังแก้ไขโครงสร้างฐานข้อมูลบางอย่างใน mediaWiki ในท้ายที่สุดแทนที่จะใช้ 20 ตารางเขาใช้เพียง 8 และเขาใช้เวลา 8 เดือนในการทำเช่นนั้น (มันเป็นงานมอบหมายวิทยาลัยของเขา) แก้ไข ฉันกำลังสรุปคำตอบเมื่อ: ขนาดของตารางไม่สำคัญจนกว่าจะถึงกรณีพิเศษ ในกรณีนี้การทำให้เป็นปกติอาจช่วยได้ ขอบคุณทุกคนสำหรับคำตอบ

8
การใช้ฐานข้อมูล NoSQL ทำไม่ได้กับชุดข้อมูลขนาดใหญ่ที่คุณต้องการค้นหาตามเนื้อหาหรือไม่?
ฉันได้เรียนรู้เกี่ยวกับฐานข้อมูล NoSQL เป็นเวลาหนึ่งสัปดาห์แล้ว ฉันเข้าใจถึงข้อดีของฐานข้อมูล NoSQL และกรณีการใช้งานจำนวนมากที่ยอดเยี่ยม แต่บ่อยครั้งที่คนเขียนบทความราวกับว่า NoSQL สามารถแทนที่ฐานข้อมูลเชิงสัมพันธ์ได้ และมีจุดที่ฉันไม่สามารถไปรอบ ๆ : ฐานข้อมูล NoSQL เป็นที่เก็บคีย์ - ค่า (มัก) แน่นอนว่าเป็นไปได้ที่จะเก็บทุกอย่างไว้ในที่เก็บคีย์ - ค่า (โดยการเข้ารหัสข้อมูลใน JSON, XML, อะไรก็ตาม) แต่ปัญหาที่ฉันเห็นคือคุณต้องได้รับข้อมูลจำนวนหนึ่งที่ตรงกับเกณฑ์เฉพาะในหลาย ๆ ใช้กรณี ในฐานข้อมูล NoSQL คุณมีเกณฑ์เดียวคุณสามารถค้นหาได้อย่างมีประสิทธิภาพ - กุญแจ ฐานข้อมูลเชิงสัมพันธ์ได้รับการปรับปรุงเพื่อค้นหาค่าใด ๆ ในแถวข้อมูลได้อย่างมีประสิทธิภาพ ดังนั้นฐานข้อมูล NoSQL จึงไม่ใช่ทางเลือกสำหรับการเก็บข้อมูลที่ต้องการค้นหาเนื้อหาของพวกเขา หรือฉันเข้าใจผิดบางอย่าง? ตัวอย่าง: คุณต้องจัดเก็บข้อมูลผู้ใช้สำหรับ webshop ในฐานข้อมูลเชิงสัมพันธ์คุณเก็บผู้ใช้ทุกคนเป็นแถวในusersตารางโดยมี ID, ชื่อ, ประเทศของเขา ฯลฯ ในฐานข้อมูล NoSQL …

7
ฉันจะโต้แย้งกับคอลัมน์ฐานข้อมูลที่ซ้ำกันอย่างมั่นใจได้อย่างไร
ฉันเริ่มทำงานกับองค์กรใหม่และหนึ่งในรูปแบบที่ฉันได้เห็นในฐานข้อมูลคือการทำซ้ำเขตข้อมูลเพื่อให้แบบสอบถามเขียนง่ายขึ้นสำหรับนักวิเคราะห์ธุรกิจ เรากำลังใช้ Django และ ORM ของมัน ในกรณีหนึ่งเราเก็บวัตถุMedicalRecordNumberด้วยสตริงที่ไม่ซ้ำกันเพื่อระบุผู้ป่วยในบริบทที่แน่นอน เรามีวัตถุการลงทะเบียนซึ่งติดตามผู้ป่วยและเชื่อมโยงMedicalRecordNumbersแต่แทนที่จะใช้ความสัมพันธ์กับคีย์ต่างประเทศพวกเขาทำซ้ำสตริงเพื่อให้พวกเขาสามารถหลีกเลี่ยงการเขียนการเข้าร่วม ( ไม่ใช่เหตุผลด้านประสิทธิภาพ) รูปแบบนี้เป็นเรื่องธรรมดาทั่วทั้งฐานข้อมูล สำหรับฉันความสำคัญของรูปแบบข้อมูลที่สะอาดเป็นเพียงเพื่อให้ฉันสามารถคิดได้ดี ความซับซ้อนที่ไม่จำเป็นคือการเสียเวลาในการประมวลผลทางปัญญาที่ จำกัด ของฉัน มันเป็นปัญหาที่เป็นระบบ การเขียนตัวพิมพ์ที่ไม่สะดวกสบายเป็นปัญหาทักษะที่แก้ไขได้ ฉันไม่ต้องการที่จะสนับสนุนการย้อนกลับและเปลี่ยนสคีมา แต่ฉันชอบที่จะสามารถสื่อสารปัญหาที่เกิดขึ้นกับการทำซ้ำประเภทนี้ได้อย่างน่าเชื่อถือ

7
เกิดอะไรขึ้นกับข้อ จำกัด ของฐานข้อมูล
เมื่อฉันตรวจสอบโมเดลฐานข้อมูลสำหรับ RDBMS ฉันมักจะประหลาดใจที่พบข้อ จำกัด เพียงเล็กน้อยหรือไม่มีเลย (นอกเหนือจาก PK / FK) ตัวอย่างเช่นเปอร์เซ็นต์มักถูกเก็บไว้ในคอลัมน์ประเภทint(ในขณะที่tinyintจะเหมาะสมกว่า) และไม่มีCHECKข้อ จำกัด ในการ จำกัด ค่าให้อยู่ในช่วง 0..100 ในทำนองเดียวกันกับ SE.SE คำตอบที่แนะนำข้อ จำกัด การตรวจสอบมักจะได้รับความคิดเห็นที่แนะนำว่าฐานข้อมูลเป็นสถานที่ที่ไม่ถูกต้องสำหรับข้อ จำกัด เมื่อฉันถามเกี่ยวกับการตัดสินใจที่จะไม่บังคับใช้ข้อ จำกัด สมาชิกในทีมตอบว่า: พวกเขาไม่รู้ด้วยซ้ำว่ามีคุณสมบัติดังกล่าวอยู่ในฐานข้อมูลที่ชื่นชอบ เป็นที่เข้าใจได้จากโปรแกรมเมอร์ที่ใช้ ORM เท่านั้น แต่น้อยกว่ามากจาก DBA ที่อ้างว่ามีประสบการณ์มากกว่า 5 ปีกับ RDBMS ที่กำหนด หรือว่าพวกเขาบังคับใช้ข้อ จำกัด ดังกล่าวในระดับแอปพลิเคชันและการทำซ้ำกฎเหล่านั้นในฐานข้อมูลไม่ใช่ความคิดที่ดีละเมิด SSOT เมื่อเร็ว ๆ นี้ฉันเห็นโครงการมากขึ้นเรื่อย ๆ ซึ่งไม่ได้ใช้กุญแจต่างประเทศ ในทำนองเดียวกันฉันได้เห็นความคิดเห็นเล็กน้อยที่นี่ใน SE.SE ซึ่งแสดงให้เห็นว่าผู้ใช้ไม่สนใจการอ้างอิงที่สมบูรณ์มากนักทำให้แอปพลิเคชันจัดการกับมัน เมื่อถามทีมถึงทางเลือกที่จะไม่ใช้ FK …

8
โดเมนขับเคลื่อนการออกแบบรูปแบบต่อต้าน SQL หรือไม่
ฉันกำลังดำน้ำในการออกแบบที่ขับเคลื่อนด้วยโดเมน (DDD) และในขณะที่ฉันไปลึกมากขึ้นในนั้นมีบางสิ่งที่ฉันไม่ได้รับ ตามที่ฉันเข้าใจแล้วประเด็นหลักคือการแยก Domain Logic (Business Logic) จาก Infrastructure (DB, File System ฯลฯ ) สิ่งที่ฉันสงสัยคือจะเกิดอะไรขึ้นเมื่อฉันมีข้อความค้นหาที่ซับซ้อนมากเช่นแบบสอบถามการคำนวณทรัพยากรวัสดุ ในประเภทของแบบสอบถามที่คุณทำงานกับการดำเนินการชุดใหญ่ประเภทของสิ่งที่ SQL ได้รับการออกแบบมาสำหรับ ทำการคำนวณเหล่านั้นภายใน Domain Layer และทำงานกับชุดจำนวนมากในนั้นก็เหมือนกับการทิ้งเทคโนโลยี SQL การคำนวณเหล่านี้ในโครงสร้างพื้นฐานไม่สามารถเกิดขึ้นได้เช่นกันเพราะรูปแบบ DDD ช่วยให้สามารถเปลี่ยนแปลงโครงสร้างพื้นฐานได้โดยไม่ต้องเปลี่ยน Domain Layer และรู้ว่า MongoDB ไม่มีความสามารถเช่น SQL Server ที่ไม่สามารถเกิดขึ้นได้ นั่นเป็นข้อผิดพลาดของรูปแบบ DDD หรือไม่?

5
จะทำอย่างไรเมื่อคุณไม่สามารถกำหนดค่าบูลีนได้
เรากำลังสร้างเว็บแอปพลิเคชั่นให้กับ บริษัท ซึ่งมีการจัดการอยู่ในแผ่นงาน Excel เท่านั้น เราเกือบจะเสร็จแล้ว แต่เมื่อเร็ว ๆ นี้ฉันได้รับมอบหมายให้นำเข้าข้อมูลทั้งหมดจากแผ่นงานเหล่านั้นไปยังระบบใหม่ของเรา ระบบสร้างขึ้นใน Java แต่การนำเข้านี้เป็นเพียงครั้งเดียวฉันตัดสินใจเขียนสคริปต์ใน Python แทนและนำเข้าโดยตรงด้วยการสืบค้น SQL ที่นี่ปัญหามา โมเดลข้อมูลใหม่มีแอตทริบิวต์ใหม่บางตัวซึ่งไม่รวมอยู่ในข้อมูลที่มีอยู่ ในกรณีส่วนใหญ่นี่ไม่ใช่ปัญหาฉันแค่ใส่ค่าเป็นศูนย์ซึ่งฉันไม่สามารถหาข้อมูลได้ แต่แล้วฉันก็วิ่งเข้าไปหาคุณสมบัติบางอย่างซึ่งเป็นบูลีนและไม่สามารถเป็นค่าเริ่มต้นได้ ก่อนอื่นฉันพยายามอนุญาต null สำหรับเขตข้อมูลเหล่านั้นในฐานข้อมูลของเรา แต่ผู้พัฒนาระดับสูงของฉันบอกให้ฉันไม่ทำ เพราะจะทำให้เกิดปัญหาในระบบของเราในอนาคต และตอนนี้ฉันไม่แน่ใจว่าจะทำอย่างไร วิธีแก้ปัญหาที่ชัดเจนคือการกำหนดค่าบูลีนที่ไม่รู้จักเป็นเท็จ แต่ฉันคิดว่ามันผิดเช่นกันเพราะฉันไม่รู้จริง ๆ ไม่ว่าจะเป็นของปลอม ตัวอย่าง: สมมติว่าคุณมีเอนทิตีคาร์ที่มีพารามิเตอร์ hasRadio ตอนนี้คุณต้องนำเข้าข้อมูลไปยังตัวแบบข้อมูลนี้ แต่ในข้อมูลมีเพียงคอลัมน์ "แบบจำลอง" และ "สี" ไม่เกี่ยวกับการมีหรือไม่มีวิทยุ คุณใส่อะไรลงในคอลัมน์ "hasRadio" ถ้ามันไม่สามารถเป็นโมฆะโดยการออกแบบ? วิธีที่ดีที่สุดในสถานการณ์นี้คืออะไร? เราควรบอกให้ บริษัท กรอกข้อมูลที่หายไปด้วยตนเองหรือไม่? หรือตั้งค่าเริ่มต้นเป็นเท็จ

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