2009-08-02 39 views
5

Có mẫu nào để viết procs được lưu trữ không? như:Mẫu để lưu các thủ tục?

  1. Chúng ta có nên viết 1 Sp để cập nhật, 1 cho chèn và 1 để chọn cho mỗi bảng.
  2. Khi nào tốt để tạo chế độ xem.
  3. Làm cách nào để quản lý quy tắc kinh doanh trong SP?
  4. Làm thế nào để giảm mã trùng lặp vv vv ..

Bất kỳ bài viết tốt hoặc cuốn sách để đọc về các mô hình ...

nhờ

+1

Đọc bài đăng này: http://stackoverflow.com/questions/718282/best-books-in-database-design-and-optimization –

+0

@HawX: Không phải là câu trả lời trực tiếp nhưng hữu ích. Cảm ơn. –

+0

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. –

Trả lời

6

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.

Các vấn đề liên quan