2010-02-13 25 views
6

Tôi đã đọc một vài câu hỏi trước đây và tôi đã không gặp một câu trả lời câu hỏi của tôi trong "đen trắng" cho tôi! Vì vậy, xin lỗi nếu điều này lặp đi lặp lại. Câu hỏi có lẽ là tương tự như hỏi, "bao lâu là một mảnh của chuỗi" nhưng chịu với tôi!Làm thế nào thô hạt nên mô hình được trong một khuôn khổ MVC?

Đối với một hệ thống đăng ký, tôi có một mô hình người dùng với các chức năng như:

  • add_user
  • delete_user
  • activate_user

Các thỏa thuận người sử dụng mô hình trên với một bảng. Bảng người dùng trong cơ sở dữ liệu MySQL.

Bạn có thể đoán được chức năng của từng chức năng nhưng điều này có đủ thô không? Ý tôi là nên mô hình của tôi chứa phương pháp đó là rộng hơn nhiều như:

  • add_record
  • delete_record
  • update_record

Nơi tôi vượt qua trong bảng và một định danh duy nhất của hồ sơ để xóa , thêm hoặc cập nhật?

Tôi đang sử dụng trình viết mã, nhưng tôi quan tâm đến cách mọi thứ nên được thực hiện trong khung công tác MVC thuần túy.

Tôi xin lỗi nếu câu hỏi này quá cầu kỳ.

Cảm ơn tất cả

Trả lời

10

Tôi không chắc chắn ý của bạn là "thô".

"nên mô hình của tôi chứa phương pháp đó là rộng hơn nhiều như: add_record, delete_record, update_record"

Tuyệt đối không. Không bao giờ. Điều đó đánh bại mục đích của việc có một mô hình.

Loại công cụ "có mục đích chung" đó là cơ sở dữ liệu. Điểm của mô hình là điều chỉnh cơ sở dữ liệu chung cho vấn đề cụ thể của bạn.

Mô hình của bạn phải cụ thể cho vấn đề của bạn.

"mô hình người dùng có các chức năng như: add_user, delete_user, activate_user" Đó là vấn đề. Mô hình của bạn phản ánh ứng dụng, miền vấn đề của bạn, giải pháp của bạn.

Mô hình của bạn sẽ có thể có hiệu lực - độc lập. Bạn sẽ có thể bao bọc mô hình của mình trong ứng dụng dòng lệnh hoặc ứng dụng GUI hoặc trang web.

+2

+1 Rất nhiều người dân dường như nghĩ rằng tất cả một mô hình nên làm là CRUD. Điều này có nghĩa là bộ điều khiển cần phải tham gia vào logic nghiệp vụ của ứng dụng của bạn. Nó được gọi là một mô hình vì nó mô hình hóa vấn đề của bạn - bất kỳ hành động nào trong miền vấn đề của bạn đều cần một phương thức trên mô hình – meouw

+0

@Meouw, cảm ơn vì đã nói điều đó. Tôi có vẻ nghĩ rằng một mô hình là một lớp trừu tượng cơ sở dữ liệu nhưng từ ý kiến ​​của bạn có vẻ như logic kinh doanh nên có quá! Tôi hiểu lầm mô hình. Mặc dù nó lạ, tại sao tôi sử dụng bộ điều khiển để thực hiện xác nhận biểu mẫu nếu tôi làm điều đó? – Abs

+2

xác thực cũng phải có trong mô hình và báo cáo lại cho bộ điều khiển là có lỗi. – DGM

0

Bạn có thể đoán mỗi chức năng hoạt động như thế nào nhưng điều này đủ thô.Ý tôi là mô hình của tôi nên chứa phương pháp mà là rộng hơn nhiều như:

* add_record 
* delete_record 
* update_record 

Nơi tôi vượt qua trong bảng và một định danh duy nhất của hồ sơ để xóa, thêm hoặc cập nhật?

Nếu bạn có nhu cầu để có được chỉ là thông tin của một người dùng không nhất thiết phải sử dụng toàn bộ hồ sơ, sau đó nó chỉ là phù hợp với bạn để có *_user chức năng, nhưng bao gồm nó chỉ trong mô hình sử dụng của bạn.

Nếu bạn có nhu cầu nhận toàn bộ hồ sơ thay vì chỉ người dùng, thì bạn cũng có thể có các chức năng *_record, nhưng đặt nó vào mẫu bản ghi - KHÔNG phải trong mẫu người dùng của bạn.

Điều cần nhớ ở đây là không bao gồm tất cả các chức năng đó chỉ trong một mô hình. Đơn giản chỉ cần đặt, người dùng của bạn và giống như một bản ghi.

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