Thông thường, lưu trữ procs theo một CRUD (http://en.wikipedia.org/wiki/Create,_read,_update_and_delete) hoa văn, nhưng chúng không nhất thiết phải giới hạn ở đây.
1) Có thể bạn muốn kết hợp cập nhật và chèn. Nếu khóa chính được điền thì đó là bản cập nhật, nếu không thì đó là phần chèn. Đối với các khóa của GUID và các khóa do khách hàng tạo ra khác, trước tiên bạn cập nhật và nếu rowcount bằng 0, bạn cần thực hiện chèn. Việc chèn/cập nhật proc thường trả về một khóa chính.
Bạn sẽ muốn có một get_by_id proc cũng như một số tiêu chí get_by_non-unique-tiêu chuẩn, trả về bất kỳ số hàng nào. Ý tưởng là để đảm bảo các cột trong tập kết quả giống hệt nhau trong tất cả các procs get/list.
Mục tiêu của các quy trình này không nhất thiết phải là một bảng, hoặc thậm chí một chế độ xem, mà là một thực thể hợp lý, vì vậy bạn có thể cần phải thực hiện các phép nối khác nhau cho cả các mối quan hệ và tra cứu. Nó có thể giúp trả về nhiều tập kết quả.
2) Chế độ xem rất tiện dụng, nhưng không đặc biệt liên quan đến điều này. Đôi khi chúng giúp tái sử dụng, nhưng không phải lúc nào cũng vậy.
3) Tất cả phụ thuộc vào quy tắc kinh doanh. Bạn chắc chắn có thể ngăn chặn một số loại tham nhũng dữ liệu nhất định ở mức proc được lưu trữ, nhưng có giới hạn về mức độ có thể hoặc nên biết. Có nói rằng, có những trường hợp có mục đích đặc biệt mà bạn có thể muốn đặt thêm logic vào proc, chẳng hạn như đăng nhập.
4) Bạn không phải lúc nào cũng làm như vậy, nhưng đôi khi bạn có thể đưa ra mã thông thường vào phần mềm cấp thấp mà người dùng không gọi.
Hy vọng đây là sự khởi đầu.
Nguồn
2009-08-02 19:27:55
Đọc bài đăng này: http://stackoverflow.com/questions/718282/best-books-in-database-design-and-optimization –
@HawX: Không phải là câu trả lời trực tiếp nhưng hữu ích. Cảm ơn. –
Các thủ tục được lưu trữ là một nguồn đáng kể của việc khóa nhà cung cấp, đây có thể là một cân nhắc quan trọng. –