Tôi đang tìm cách tốt nhất để xử lý tình huống này. Tôi muốn lưu trữ một lịch biểu khấu hao bên trong một bảng dữ liệu. Mỗi hàng chứa ngày, số dư hiện tại, thanh toán, tiền gốc, lãi và số dư mới. Đối với một thế chấp 30 năm điển hình, đây sẽ là 360 hàng hoặc chèn cơ sở dữ liệu.Trong Delphi tôi có nên sử dụng nhiều cơ sở dữ liệu chèn từ bên trong một vòng lặp hoặc sử dụng một thủ tục được lưu trữ?
Tôi có nên thực hiện các phép tính bên trong vòng lặp bằng Delphi và thực hiện chèn cho mỗi kết quả hay tôi nên thực hiện các phép tính này bên trong một thủ tục lưu sẵn?
Đây sẽ là một người dùng, máy cục bộ, ứng dụng dành cho máy tính để bàn.
Tôi đến từ một thế giới của khách hàng bị khóa vào Oracle để DBMS thay đổi là bên cạnh không thể :) . IMHO, có tất cả các hoạt động liên quan đến dữ liệu (SELECT cho một, nhưng chủ yếu là các hoạt động cụ thể bao gồm sửa đổi một hoặc nhiều bảng) phải nằm trong cơ sở dữ liệu nơi chúng thuộc về. Lưu trữ các quy tắc nghiệp vụ trong cơ sở dữ liệu và hiển thị chúng thông qua các API tùy chỉnh. Phải thừa nhận rằng, điều này sẽ làm tăng đường cong học tập cho một lập trình viên có trách nhiệm nhưng tôi nghĩ nó đáng giá. Tôi thừa nhận điều này có thể đi xuống đến kích thước của ứng dụng và sở thích của những người đang làm việc trên nó :) – phil
@Miho, vâng, nó là sở thích cá nhân, nhưng nó sẽ giết tôi nếu ai đó đã làm nó trên một trong các dự án của tôi. Đối với một nhà phát triển ứng dụng, việc sử dụng các thủ tục được lưu trữ là tổ của viper! Về cơ bản nó di chuyển các quy tắc dữ liệu ra khỏi phạm vi của nhà phát triển ứng dụng và đẩy chúng ra khỏi tầm nhìn.Tôi muốn biết những gì đang xảy ra với dữ liệu, không có nó xuất hiện bí ẩn đối với tôi. – Misha
@Misha, tôi đồng ý với bạn về dữ liệu vừa xuất hiện. Những người làm việc với dữ liệu cần phải biết những gì và làm thế nào được lấy ra hoặc xử lý. Vấn đề là sự khác biệt giữa nhà phát triển ứng dụng và nhà phát triển cơ sở dữ liệu. Tôi không hiểu được thứ gì đó xuất hiện bí ẩn trong mã của bạn. Nếu chúng ta đặt một cái gì đó trong một thủ tục được lưu trữ, điều đó không có nghĩa là một nhà phát triển ứng dụng không thể định vị và sửa đổi/xem thủ tục đó? Nó chỉ thêm một mức trừu tượng khác. Chế độ xem tốt (mặc dù DB thiên vị): http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:2143974700346554115 – phil