Tôi biết một số thực tiễn tốt nhất chung khi thiết kế cơ sở dữ liệu cho một ứng dụng, nhưng còn thiết kế lại thì sao?
Tôi thuộc nhóm được giao nhiệm vụ thiết kế lại một ứng dụng kinh doanh nội bộ, mặc dù tôi nói "nội bộ", thật không may, nhiều người không tiếp xúc với người dùng thực tế của hệ thống.
Chương trình hiện tại nằm trong Oracle Forms, nằm rải rác trên một loạt các bảng không được chuẩn hóa, đôi khi có nhiều bảng gần trùng lặp giữ các biến thể nhỏ trên dữ liệu của nhau. Các ràng buộc thường ở dạng thủ tục lưu trữ được thực thi kém. Ngay cả các loại dường như không được lưu trữ đúng. Tôi đã gặp tất cả các loại dữ liệu xấu mà Oracle dường như bỏ qua nhưng đã cung cấp (và đúng như vậy) cho Trình hướng dẫn Nhập / Xuất của SQL Server. (Ví dụ: hai số nguyên không tạo thành một datetime hoàn chỉnh!)
Chương trình ban đầu có lẽ đã quay trở lại hai mươi năm và tất cả các nhà phát triển ban đầu đã nghỉ hưu từ lâu đến nỗi ngay cả những người lớn tuổi ở đây cũng không biết họ là ai. Do đó, thực sự cũng không có bất kỳ yêu cầu rõ ràng nào được đưa ra - chúng tôi chỉ cần sao chép chức năng của ứng dụng hiện có và giữ dữ liệu hiện có của nó.
Kết quả cuối cùng của việc viết lại sẽ là một phiên bản dựa trên web chạy trên ASP.NET với MS SQL Server cho mặt sau.
Hai đồng đội phát triển khác của tôi lớn hơn tôi nhiều tuổi, cả hai đều có nền tảng kinh doanh / MIS trong khi tôi là CS. Kinh nghiệm của thành viên cấp cao hầu như chỉ là các hình thức của Oracle và thành viên khác hầu hết đã thực hiện các ứng dụng kinh doanh hoạt động trong Visual Basic. Mặc dù nền tảng cơ sở dữ liệu của tôi đã bị giới hạn trong việc thiết kế cơ sở dữ liệu mới cho các dự án trong MySQL hoặc SQLite, chủ yếu là cho các lớp dưới đại học của tôi, tôi dường như là người duy nhất có kinh nghiệm thực sự thiết kế cơ sở dữ liệu.
Tôi đã viết một chương trình nhỏ trong C # đọc tất cả dữ liệu hiện có sang định dạng trung tính, sẵn sàng để được truyền lại và đặt vào cơ sở dữ liệu mới. Tôi dự định viết mã tải sau khi cơ sở dữ liệu đích được thiết kế, để dữ liệu có thể được phân chia chính xác qua các bảng được chuẩn hóa mới, được thêm vào theo đúng thứ tự để tuân theo các ràng buộc mới, v.v. để sao chép dữ liệu sản xuất sang thiết kế lại hoàn thành mới được triển khai thực sự. Điều này để lại thiết kế lại thực tế của cơ sở dữ liệu là điều chính để tìm ra.
Vì vậy, trung tâm của câu hỏi của tôi: một số thực tiễn tốt nhất để thực hiện thiết kế lại từ cơ sở dữ liệu lên đến một ứng dụng hiện có là gì?