Mô hình trong triển khai MVC là hoặc phải là mô hình kinh doanh.
Mô hình kinh doanh mô tả hành vi và thuộc tính của các thực thể của doanh nghiệp có liên quan đến ứng dụng. Khi bạn mã hóa điều này, các thực thể trở thành các lớp và hành vi và các thuộc tính sẽ kết thúc dưới dạng các phương thức và thuộc tính của các lớp đó tương ứng.
Ứng dụng cần một nơi nào đó để lưu trữ thông tin của ứng dụng. Nếu bộ nhớ là vô hạn, chúng tôi sẽ không bao giờ bị cúp điện và hệ điều hành của chúng tôi sẽ không bao giờ yêu cầu khởi động lại, mô hình kinh doanh sẽ là đủ. Tuy nhiên, trong thế giới thực, chúng ta cần lưu trữ các thuộc tính của các lớp ở đâu đó, nơi chúng có thể tồn tại trong ứng dụng và/hoặc tắt máy tính.
Và vì vậy mô hình kinh doanh cần và sử dụng một kho dữ liệu của một số loại. Cách lưu trữ dữ liệu này được tổ chức là mô hình dữ liệu. Như trong hầu hết các trường hợp, một cơ sở dữ liệu quan hệ là kho dữ liệu được lựa chọn, mô hình dữ liệu thường là thiết kế của cơ sở dữ liệu quan hệ.
Trong khi mô hình dữ liệu có thể ở mức logic và sau đó giống mô hình kinh doanh OO chặt chẽ hơn, trong ngữ cảnh này, chúng ta thường nói về việc triển khai kỹ thuật mô hình logic. (Một khác biệt chính: các mô hình logic cho phép các mối quan hệ M-N giữa các bảng, mô hình kỹ thuật chuẩn hóa sẽ có một bảng liên kết có quan hệ N-1 với hai bảng gốc).
Bản chất OO của mô hình kinh doanh không ánh xạ trực tiếp đến thiết kế bảng và cột được chuẩn hóa. Các thư viện ORM (Object - Relational - Mapping) thường được sử dụng để ánh xạ các thuộc tính của các lớp tới các bảng và các cột trong cơ sở dữ liệu quan hệ.
Khi mô hình kinh doanh sử dụng kho dữ liệu và do đó mô hình dữ liệu, và cùng nhau chúng bao gồm Mô hình trong triển khai MVC, sự khác biệt giữa chúng thường bị mờ. Tôi nghĩ rằng rất đáng để giữ vai trò riêng biệt của họ rõ ràng trong tâm trí bạn. Nó giúp trong việc quyết định nơi logic nên đi. Ví dụ, trái với câu trả lời của rsenna, tôi sẽ nội dung rằng việc thay đổi mức lương cho một nhân viên duy nhất vẫn là một chức năng của mô hình kinh doanh, ngay cả khi thay đổi nó thành giá trị bằng chữ, bởi vì mô hình kinh doanh có thể xác định tất cả các loại kiểm tra và cân bằng, xác nhận và các quy tắc kinh doanh khác để thay đổi mức lương của nhân viên. Đối với examply doanh nghiệp có thể có quy tắc mà không có lương có thể thay đổi nhiều hơn x phần trăm, không bao giờ có thể vượt quá mức lương của Giám đốc điều hành, tuân thủ các quy tắc của Liên minh, vv. các quy tắc thuộc về mô hình kinh doanh, không nằm trong mô hình dữ liệu. DBa thích họ trong mô hình dữ liệu, có thể bởi vì mô hình kinh doanh thường được thực hiện trong một số loại ngôn ngữ lập trình và mô hình dữ liệu trong cơ sở dữ liệu và dba giống như giữ cơ sở dữ liệu của họ tốt đẹp và hợp lệ.
Tôi muốn nói rằng các quy tắc vẫn là một phần của mô hình kinh doanh, không phải là mô hình dữ liệu, nhưng tất nhiên bạn luôn có thể chọn triển khai chúng trong trình kích hoạt và thủ tục được lưu trữ. Trường hợp các quy tắc của mô hình kinh doanh được thực hiện là một vấn đề ..., thực hiện tốt, chi tiết.
Mô hình kinh doanh và mô hình Dữ liệu không liên quan gì đến MVC. Nó không quan trọng những gì kết thúc trước là (MVC, Silverlight, ...), nó phải được tách ra từ lớp kinh doanh của bạn và lớp dữ liệu. – Martin
Khi bạn nói rằng "thường thì các phương thức thay đổi trạng thái đối tượng nằm bên trong chính các đối tượng đó", bạn có thể nói về mẫu Active Record. Vui lòng xem câu trả lời của tôi bên dưới. – rsenna
Điều thú vị là tất cả các câu trả lời, cho đến nay, giả sử việc sử dụng một cơ sở dữ liệu. Tôi không biết rằng mô hình dữ liệu liên quan nhất thiết đến cơ sở dữ liệu. Một số chương trình, thậm chí các chương trình lớn với kiến trúc tuyệt vời không sử dụng cơ sở dữ liệu chút nào, một số thậm chí không lưu dữ liệu. Vì vậy, điều này có nghĩa là họ không có mô hình dữ liệu. Tôi không có ý nói điều này một cách thô lỗ, nhưng nó khiến tôi tự hỏi làm thế nào điều này áp dụng cho các ứng dụng nói chung và không chỉ những người làm việc sử dụng một cơ sở dữ liệu ... – startoftext