ฉันตระหนักถึงแนวปฏิบัติที่ดีที่สุดทั่วไปบางอย่างเมื่อออกแบบฐานข้อมูลสำหรับแอปพลิเคชัน แต่สิ่งที่เกี่ยวกับการออกแบบใหม่?
ฉันอยู่ในทีมที่มอบหมายการออกแบบแอปพลิเคชันธุรกิจภายในใหม่ถึงแม้ว่าฉันจะพูดว่า "ภายใน" แต่ฉันก็ยังโชคร้ายที่มีคนจำนวนมากที่ไม่ได้ติดต่อกับผู้ใช้จริงของระบบ
โปรแกรมปัจจุบันอยู่ใน Oracle Forms ซึ่งกระจายอยู่ในตารางที่ไม่ได้ถูกทำให้เป็นมาตรฐานซึ่งบางครั้งมีตารางที่ใกล้เคียงกันหลายชุดซึ่งมีข้อมูลที่แตกต่างกันเล็กน้อย ข้อ จำกัด มักจะอยู่ในรูปแบบของขั้นตอนการจัดเก็บที่มีการบังคับใช้ไม่ดี แม้แต่ประเภทก็ดูเหมือนจะไม่ถูกจัดเก็บไว้อย่างถูกต้อง ฉันพบข้อมูลที่ไม่ดีทุกประเภทที่ Oracle ดูเหมือนว่าจะเพิกเฉย แต่ได้ให้ตัวช่วยสร้างการนำเข้าและส่งออกของ SQL Server (และถูกต้องแล้ว) (ตัวอย่างเช่นจำนวนเต็มสองหลักไม่ได้เป็นการ datetime ที่สมบูรณ์!)
โปรแกรมดั้งเดิมอาจย้อนกลับไปเมื่อยี่สิบปีที่แล้วและนักพัฒนาดั้งเดิมทั้งหมดได้เลิกใช้งานไปนานแล้วแม้แต่ผู้สูงอายุที่นี่ก็ยังไม่รู้เลยว่าพวกเขาเป็นใคร ด้วยเหตุนี้จึงไม่มีข้อกำหนดที่ชัดเจนใด ๆ ที่จะต้องกำจัด - เราเพียง แต่ควรทำซ้ำฟังก์ชันการทำงานของแอปพลิเคชันที่มีอยู่และเก็บข้อมูลที่มีอยู่
ผลลัพธ์สุดท้ายของการเขียนซ้ำจะเป็นเวอร์ชั่นที่ทำงานบนเว็บที่ทำงานบน ASP.NET พร้อมกับ MS SQL Server สำหรับด้านหลัง
เพื่อนร่วมทีมนักพัฒนาซอฟต์แวร์อีกสองคนของฉันอายุมากกว่าฉันมากทั้งสองมีภูมิหลังทางธุรกิจ / MIS ในขณะที่ฉันเป็น CS ประสบการณ์ของสมาชิกอาวุโสนั้นเกือบจะเป็นรูปแบบของออราเคิลเท่านั้นและสมาชิกคนอื่น ๆ ส่วนใหญ่ได้ทำแอปพลิเคชันทางธุรกิจใน Visual Basic แม้ว่าพื้นหลังฐานข้อมูลของฉันจะถูก จำกัด ให้ออกแบบฐานข้อมูลใหม่สำหรับโครงการใน MySQL หรือ SQLite แต่ส่วนใหญ่สำหรับชั้นเรียนระดับปริญญาตรีของฉันฉันดูเหมือนจะเป็นคนเดียวที่มีประสบการณ์ในการออกแบบฐานข้อมูลจริง ๆ เลย
ฉันได้เขียนโปรแกรมเล็ก ๆ น้อย ๆ ใน C # ที่อ่านข้อมูลที่มีอยู่ทั้งหมดในรูปแบบที่เป็นกลางพร้อมที่จะส่งใหม่และวางลงในฐานข้อมูลใหม่ ฉันวางแผนที่จะเขียนโค้ดโหลดหลังจากฐานข้อมูลปลายทางได้รับการออกแบบเพื่อให้สามารถแยกข้อมูลอย่างถูกต้องในตารางปกติใหม่เพิ่มในลำดับที่ถูกต้องเพื่อปฏิบัติตามข้อ จำกัด ใหม่ ฯลฯ โปรแกรมเดียวกันสามารถรันอีกครั้งในภายหลัง เพื่อคัดลอกข้อมูลการผลิตไปยังการออกแบบที่เสร็จสิ้นการปรับใช้จริงใหม่ สิ่งนี้ทำให้การออกแบบฐานข้อมูลจริงเป็นสิ่งสำคัญที่ต้องพิจารณา
ดังนั้นหัวใจของคำถามของฉัน:อะไรคือแนวทางปฏิบัติที่ดีที่สุดสำหรับการออกแบบใหม่จากระดับฐานข้อมูลจนถึงแอปพลิเคชันที่มีอยู่