2012-01-05 56 views
26

Tôi đang bối rối để hiểu ý nghĩa của từ này là gì là gì? Cảm ơn tất cả.khác biệt giữa một Model và một Entity

+0

mối quan hệ. Rất nhiều người trong số họ. – wildplasser

+1

Liên quan đến sự khác biệt giữa Thực thể và Mô hình - có một câu trả lời tuyệt vời tại http://stackoverflow.com/questions/5863870/how-should-a-model-be-structured-in-mvc –

Trả lời

26

Tôi hy vọng tôi đã không bỏ lỡ điểm của bạn ở đây king.net ...

Dù sao, giả sử bạn đang nói về mô hình thực thể hoặc mô hình thực thể mối quan hệ (ERDs):

  • một thực thể đại diện cho bất kỳ thực thể thế giới thực nào - ví dụ sinh viên, khóa học,
  • một thực thể sẽ có các thuộc tính - ví dụ: học sinh có tên, họ, ngày sinh
  • một thực thể sẽ có mối quan hệ - ví dụ: sinh viên "được ghi danh vào" khóa học (nơi sinh viên và khóa học là các thực thể có thuộc tính và "được đăng ký" là mối quan hệ.
  • mối quan hệ có thể là "một đối một", "một-nhiều" hoặc " nhiều-nhiều" - ví dụ như một sinh viên 'được ghi danh vào' nhiều khóa học và tương tự một khóa học 'có mô hình dữ liệu '' nhiều sinh viên
  • các mối quan hệ cũng có cardinality

Thêm mối quan hệ giữa các thực thể tạo ra một'. Bạn đã lập mô hình một số hệ thống thế giới thực và các thực thể/đối tượng bên trong trong hệ thống đó. Bước tiếp theo là bình thường hóa nó để đảm bảo nó đáp ứng được "biểu mẫu bình thường"

Trong điều kiện ERD, bạn có thể có các mô hình "hợp lý" và "vật lý". Mô tả logic mô hình dữ liệu trong các thuật ngữ đơn giản ở mức cao mà làm mất đi các chi tiết kỹ thuật cần thiết để thực hiện nó. Nó đại diện cho tổng quan về giải pháp hệ thống. Mô hình vật lý bao gồm các chi tiết kỹ thuật cần thiết để thực sự triển khai thực hiện hệ thống (chẳng hạn như "các bảng nối nhiều thành nhiều" cần thiết để thực hiện các mối quan hệ "nhiều-nhiều").

Dưới đây là một số hướng dẫn trên mạng (mặc dù tôi chắc chắn phải có hàng ngàn):

Tôi không khá chắc chắn ý bạn là gì bởi "mô hình" và "mô hình xem" trong một ngữ cảnh liên quan. Bạn không chắc chắn nếu bạn có thể nhầm lẫn điều này với mô hình Model-View-Controller (MVC). Ở đây, một mô hình là một số thành phần dữ liệu và khung nhìn đại diện cho một người quan sát dữ liệu đó (chẳng hạn như một thành phần bảng hoặc đồ thị giao diện người dùng). Có rất nhiều trên mạng giải thích "bộ điều khiển xem mô hình" hoặc "MVC".

Hy vọng điều này sẽ giúp, Wayne

+0

Cảm ơn bạn đã trả lời và giải thích. Tôi không chỉ là mẫu 'MVC', nhưng ý tôi là tất cả các mẫu 'MVx' -'MVC',' MVCP', 'MVVM'. Cám ơn bạn một lần nữa. Hữu ích. –

3

Trước hết, phải biết về Pháp nhân bạn phải biết về Lớp học. Tất cả chúng đại diện cho các trường giống nhau nhưng thay đổi thuật ngữ dựa trên khai báo.

Hãy xem xét một bảng từ bất kỳ cơ sở dữ liệu nào [SQL, ORACLE, Informix, Cassandra ..] làm ví dụ.

CLASS:

Nói chung một bảng được coi là một lớp cho đến khi nó được thêm vào edmx hoặc dbmx.

//Student class 
     public class Student() 
     { 
     //Properties 
     public int StudentNumber; 
     public string StudentName; 
     } 

ENTITY:

  • Sau khi kéo thả/thêm bảng vào dbmx/edmx nó được gọi là Entity.

  • Mỗi thực thể được tạo từ lớp tương ứng và chúng tôi có thể thêm các thuộc tính vào thực thể được sử dụng để thực hiện các hoạt động sử dụng
    LINQ hoặc thực thể.

DataModel:

  • Chứa tất cả các trường trong bảng.

  • DATAMODEL là tham chiếu lớp trực tiếp tới cshtml hoặc bộ điều khiển nơi bạn có thể truy cập các thuộc tính để thực hiện các hoạt động CRUD.

ViewModel:

  • Một số tình huống xảy ra mà chúng ta cần phải thực hiện thao tác CRUD hơn hơn một mô hình (bảng).
  • Vì vậy, chúng tôi kết hợp tất cả các mô hình được yêu cầu trong một lớp và xác định chúng trong hàm tạo của nó.

Ví dụ: Cho phép giả định

//Student class 
public class Student() 
{ 
//Properties 
public int StudentNumber; 
public string StudentName; 
} 
//Marks Class 
Public class Marks() 
{ 
public int Maths; 
public int Physics; 
public int Chemistry; 

//Now sometimes situations occur where we have to use one datamodel inside //other datamodel. 
public Student StudentModel; 
} 
14

Định nghĩa của các thuật ngữ này là khá mơ hồ. Bạn sẽ tìm thấy các định nghĩa khác nhau tại các địa điểm khác nhau.

Thực thể: Một thực thể thể hiện một cá thể của đối tượng tên miền của bạn được lưu vào cơ sở dữ liệu dưới dạng bản ghi. Nó có một số thuộc tính mà chúng tôi đại diện dưới dạng các cột trong bảng của chúng tôi.

Mẫu: Mô hình thường đại diện cho một đối tượng thế giới thực có liên quan đến vấn đề hoặc không gian tên miền. Trong lập trình, chúng ta tạo các lớp để biểu diễn các đối tượng. Các lớp này, được gọi là các mô hình, có một số thuộc tính và phương thức (xác định hành vi đối tượng).

ViewModel: Thuật ngữ ViewModel có nguồn gốc từ các mẫu thiết kế MVVM (Model View ViewModel). Có những trường hợp dữ liệu được hiển thị bởi khung nhìn xuất phát từ hai đối tượng khác nhau. Trong các trường hợp như vậy, chúng ta tạo một lớp mô hình bao gồm tất cả các thuộc tính mà khung nhìn yêu cầu. Đây không phải là mô hình miền nhưng là Chế độ xemModel vì, một chế độ xem cụ thể sử dụng mô hình đó. Ngoài ra, nó không đại diện cho một đối tượng thế giới thực.

DataModel: Để giải quyết vấn đề, các đối tượng tương tác với nhau. Một số đối tượng chia sẻ mối quan hệ giữa chúng và do đó, tạo thành một mô hình dữ liệu đại diện cho các đối tượng và mối quan hệ giữa chúng.

Trong một ứng dụng quản lý đơn đặt hàng của khách hàng, ví dụ, nếu chúng ta có đối tượng khách hàng và đơn đặt hàng thì các đối tượng này chia sẻ mối quan hệ nhiều đến nhiều giữa chúng. Mô hình dữ liệu cuối cùng phụ thuộc vào cách các đối tượng của chúng ta tương tác với nhau. Trong một cơ sở dữ liệu, chúng ta thấy mô hình dữ liệu như một mạng lưới các bảng tham chiếu đến một số bảng khác.

Để biết thêm về các mối quan hệ đối tượng tham quan: Basics of Object Relationships

Để biết thêm chi tiết chuyến thăm: Entity vs Model vs ViewModel vs DataModel

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