คำถามติดแท็ก rules-and-constraints

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

3
อัลกอริทึมปฏิทิน / การวางแผน
ฉันประสบปัญหาฉันไม่แน่ใจว่าจะเข้าใกล้ได้อย่างไร ฉันต้องสร้างปฏิทินสำหรับพนักงานแต่ละคนมีข้อ จำกัด ในการทำงานเฉพาะ (บางคนเป็นเรื่องธรรมดา) สิ่งที่ฉันทำงานด้วย: ฉันมีหมอ แพทย์แต่ละคนจะต้องทำงาน 5 วัน / สัปดาห์ แพทย์แต่ละคนต้องทำงาน 1 คืน / สัปดาห์ แพทย์แต่ละคนจะต้องทำงานในจำนวนคืนที่เท่ากันเมื่อเทียบกับแพทย์คนอื่น ๆ (หรือใกล้เคียงที่สุด) แพทย์แต่ละคนจะต้องทำงานในคืนวันพฤหัสบดีและคืนวันอาทิตย์ในจำนวนเท่ากันเมื่อเทียบกับหมอคนอื่น ๆ แพทย์บางคนไม่สามารถทำงานได้ในบางวัน / คืน (ป้อนโดยผู้ใช้) แพทย์บางคนต้องการทำงานบางวัน / คืน (ป้อนโดยผู้ใช้) แพทย์บางคนต้องการที่จะไม่ทำงานบางวัน / คืน (ป้อนโดยผู้ใช้) ผู้ใช้ที่สงสัยคือบุคคลที่จัดการกับปฏิทินฉันกำลังพยายามสร้างโซลูชันที่จะสร้างปฏิทินโดยอัตโนมัติซึ่งเป็นไปตามข้อ จำกัด ทั้งหมด การแก้ปัญหาเป็นเพียงแค่การตั้งค่าขนาดใหญ่ป้อน "เพิ่มแพทย์" และ "เพิ่มข้อ จำกัด " สำหรับแพทย์แต่ละคนจากนั้นปุ่ม "สร้างปฏิทิน" มันพื้นฐานจริงๆสำหรับผู้ใช้ ปัญหาของฉัน: ฉันไม่แน่ใจว่าจะสร้างการวางแผนที่แท้จริงได้อย่างไรฉันได้อ่านเกี่ยวกับ Neural Networks, …

6
รหัสทางวิทยาศาสตร์เป็นขอบเขตที่แตกต่างกันมากพอที่จะเพิกเฉยต่อมาตรฐานการเข้ารหัสทั่วไปหรือไม่?
เมื่อไม่นานมานี้ฉันพยายามจะปิดปากเรื่องดังต่อไปนี้ ในอีกด้านหนึ่งมีโฮสต์ของแนวทางการเข้ารหัสและมาตรฐานสำหรับสิ่งที่ถือว่าเป็น "สุขภาพ", "สะอาด", "ดีเขียน" และอื่น ๆ รหัส ดู "รหัสสะอาด" ที่ดูเหมือนจะพูดถึงกันอย่างกว้างขวางที่นี่เช่นกัน กฎตัวอย่าง: วิธียาว 7 บรรทัดและ 1 หรือ 2 ระดับของการเยื้อง รหัสที่ไม่ได้ปฏิบัติตามคาดว่าจะตายจากการบำรุงรักษาที่ไม่ดี ในทางกลับกันฉันได้ทำงานกับ OpenCV, OpenCascade, VTK และอื่น ๆ มันเป็นรหัสทางวิทยาศาสตร์ พวกเขามีวิธีการยาว 2 หน้า (sen ตัวเอง), OpenCascade มีวิธีการหรือคลาสแบ่งออกเป็น 10 ไฟล์ (ไม่มีเรื่องตลกที่นี่) VTK เป็นระเบียบในบางครั้งเช่นกัน แต่โครงการเหล่านี้ประสบความสำเร็จได้รับการดูแลและใช้อย่างกว้างขวาง! จับได้ที่ไหน เราได้รับอนุญาตให้เขียนโค้ดทางวิทยาศาสตร์คณิตศาสตร์หนัก ๆ ในแบบที่มันใช้งานได้และเราสามารถรักษามันไว้ได้หรือไม่? คุณเป็นชุดมาตรฐานแยกต่างหากสำหรับโครงการดังกล่าวหรือไม่ถ้ามี อาจเป็นคำถามที่ไร้เดียงสา แต่ฉันอยู่ในสิ่งที่ดูเหมือนจะเป็นโมฆะการเขียนโปรแกรมพยายามสร้างชุดของกฎวิธีการทำและไม่ทำสิ่งต่าง ๆ ซึ่งเป็นวิธีที่ฉันได้รับการสอนให้ทำงานที่โรงเรียนมัธยม นับตั้งแต่ที่ฉันเรียนจบฉันแทบจะไม่ได้รับการชี้นำจากสิ่งที่ฉันต้องทำโดยเฉพาะอย่างยิ่งการเขียนโปรแกรม …

4
โดยหลักการแล้วจะสร้างเอ็นจินกฎ / ข้อ จำกัด (ไม่ใช่กราฟิก / ฟิสิกส์) สำหรับเกมได้อย่างไร
ฉันต้องการสร้างเกมง่ายๆคล้ายกับหนังสือที่คุณเลือกเอง ผู้เล่นจะได้รับข้อความบรรยายและเลือกการกระทำของเขาจากรายการความเป็นไปได้ ในทางกลับกันสิ่งนี้นำไปสู่ข้อความบรรยายเรื่องใหม่ infinitum โฆษณา สิ่งเดียวที่จับได้คือขึ้นอยู่กับการตัดสินใจก่อนหน้านี้รายการของความเป็นไปได้ที่อาจแตกต่างกัน ในภาพรวมก่อนหน้านี้ดูเหมือนว่าจะมีคำสั่ง if-else โหลดดังนั้นการอ้างถึงเอ็นจินกฎจะถูกนำมาใช้ แต่มันก็ดูเหมือนเครื่องจักรสถานะ จำกัด สำหรับฉัน ฉันกำลังจะเขียนสิ่งนี้ใน Java หรืออาจจะเป็น Groovy ปัจจุบันฉันสนใจประเด็นเกี่ยวกับแนวคิดมากขึ้นเช่นจะทำอย่างไรในระดับกว้างขึ้น (ผู้คนใช้เกมหมากรุกหรือไพ่อย่างไร?) แต่ก็มีคำแนะนำบางอย่างเกี่ยวกับห้องสมุดเฉพาะด้วยเช่นกัน เห็นได้ชัดว่า "เกมเอ็นจิ้น" จากชื่อไม่ได้หมายถึงการตรวจจับการชนหรือกลไกฟิสิกส์ / กราฟิกอื่น ๆ แต่ตรรกะตัดสินใจว่าผู้เล่นตัวเลือกได้ให้สถานการณ์และสถานะปัจจุบันของเขา

6
แสดงถึงกฎธุรกิจที่มีข้อยกเว้น
ฉันรู้ว่ามันแพง แต่ (IMO) ฉันเชื่อว่านี่เป็นวิธีปฏิบัติที่ดีมาก ฉันกำลังพูดถึงกฎอย่างเช่นพูดว่าคุณไม่สามารถบันทึกใบแจ้งหนี้ได้หากคุณไม่ใช่พนักงานขาย ... ดังนั้นในกรณีนี้ให้ยกเว้นว่า "คุณไม่ได้รับอนุญาต" หรือเช่น ... อีกวิธีหนึ่งที่จะมีวัตถุที่มีสถานะหรืออะไรทำนองนั้น มีวิธีอื่นอีกไหม? คุณรู้สึกอย่างไรเกี่ยวกับเรื่องนี้?

5
ห้ามการเรียกฟังก์ชั่น / คลาสโดยพลการในรหัสภายนอก
ฉันเคยประสบกรณีที่จะมีประโยชน์ในการ จำกัด การเข้าถึง API ของไลบรารีภายนอกและกรอบงานเพื่อป้องกันผลกระทบด้านลบในระบบ ตัวอย่างเช่นในแอปพลิเคชัน SharePoint อาจดูเหมือนเป็นเรื่องปกติที่จะเรียกspList.Items.GetItemByIdเพื่อรับรายการแม้ในวงวนโดยไม่ทราบว่าสิ่งนี้สามารถนำไปสู่ปัญหาประสิทธิภาพการทำงานขนาดใหญ่ได้ อาจเป็นไปได้ว่าเราต้องห้ามการใช้ SmtpClient เพื่อบังคับให้ทุกคนใช้คลาสของเราในการส่งอีเมลเพื่อให้แน่ใจว่าเราสามารถใช้พร็อกซีและเยาะเย้ยทางอีเมลได้อย่างถูกต้องเมื่ออยู่ในสภาพแวดล้อมการทดสอบ มีวิธีที่เชื่อถือได้และตรงไปตรงมาอย่างสมเหตุสมผลในการบรรลุข้อ จำกัด เหล่านี้ในรหัสภายนอกยกเว้นจากบางสถานที่ในรหัสของเราเองหรือไม่? ไม่จำเป็นที่จะต้องป้องกันการเข้าถึงวิธีการ / ชั้นเรียนเหล่านี้อย่างแน่นอนเช่นโดยการไตร่ตรองหรือปิดการใช้งานบางประเภทมันควรเป็นคำเตือนที่เข้มงวดว่าพวกเขาไม่ควรใช้ บังคับให้โปรแกรมเมอร์ใช้มาตรการเพื่อแก้ไขข้อ จำกัด เหล่านี้หากเป็นไปได้ / จำเป็น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.