Was ist der Unterschied zwischen einem Modell und einer Entität?


74

Ich bin verwirrt zu verstehen, was die Bedeutung dieser Worte ist:

Entity, Model, DataModel,ViewModel

Kann mir irgendein Körper helfen, sie zu verstehen? Danke euch allen.


3
In Bezug auf den Unterschied zwischen Entität und Modell - es gibt eine ausgezeichnete Antwort unter stackoverflow.com/questions/5863870/…
Ross Attrill

Antworten:


43

Ich hoffe, ich habe Ihren Standpunkt hier nicht verpasst. King.net ...

Angenommen, Sie sprechen von Entity Modeling oder Entity Relationship Modeling (ERDs):

  • Eine Entität repräsentiert jede reale Entität - z. B. Student, Kurs,
  • Eine Entität hat Attribute - z. B. hat der Schüler Vor- und Nachnamen sowie das Geburtsdatum
  • Eine Entität hat Beziehungen - z. B. Schüler ist in einem Kurs "eingeschrieben" (wobei Schüler und Kurs Entitäten mit Attributen sind und "eingeschrieben in" die Beziehung ist.
  • Die Beziehung kann "Eins-zu-Eins", "Eins-zu-Viele" oder "Viele-zu-Viele" sein - z. B. ist ein Student "in" vielen Kursen eingeschrieben und in ähnlicher Weise hat ein Kurs "" viele Studenten ".
  • Beziehungen haben auch Kardinalität

Durch Hinzufügen von Beziehungen zwischen Entitäten wird ein "Datenmodell" erstellt. Sie haben ein reales System und die internen Entitäten / Objekte in diesem System modelliert. Der nächste Schritt besteht darin, es zu normalisieren, um sicherzustellen, dass es der "normalen Form" entspricht.

In ERD-Begriffen haben Sie möglicherweise "logische" und "physische" Modelle. Die Logik beschreibt das Datenmodell in einfachen Begriffen auf hoher Ebene, die die technischen Details zurückhalten, die für die Implementierung erforderlich sind. Es repräsentiert die Übersicht über die Systemlösung. Das physische Modell enthält technische Details, die für die tatsächliche Implementierung des Systems erforderlich sind (z. B. "Viele-zu-Viele-Verknüpfungstabellen", die zum Implementieren von "Viele-zu-Viele" -Beziehungen erforderlich sind).

Hier sind einige Online-Tutorials (obwohl ich sicher bin, dass es Tausende geben muss):

Ich bin mir nicht ganz sicher, was Sie unter "Modell" und "Modell anzeigen" in einem verwandten Kontext verstehen. Ich bin mir nicht sicher, ob Sie dies mit dem Model-View-Controller-Paradigma (MVC) verwechseln können. Hier ist ein Modell eine Datenkomponente, und die Ansicht stellt einen Beobachter dieser Daten dar (z. B. eine Tabellen- oder Diagramm-UI-Komponente). Es gibt viele Online-Erklärungen zu "Model View Controller" oder "MVC".

Hoffe das hilft, Wayne


Vielen Dank zu antworten und zu erklären. Ich bin nicht über nur MVCMuster, aber ich meine , alle ‚MVx‘ Muster - MVC, MVCP, MVVM. Danke nochmal. Hilfreich.
Agent47

63

Die Definition dieser Begriffe ist ziemlich zweideutig. Sie finden verschiedene Definitionen an verschiedenen Stellen.

Entität : Eine Entität repräsentiert eine einzelne Instanz Ihres Domänenobjekts, die als Datensatz in der Datenbank gespeichert ist. Es hat einige Attribute, die wir als Spalten in unseren Tabellen darstellen.

Modell : Ein Modell repräsentiert normalerweise ein reales Objekt, das mit dem Problem oder dem Domänenraum zusammenhängt. Bei der Programmierung erstellen wir Klassen zur Darstellung von Objekten. Diese als Modelle bezeichneten Klassen verfügen über einige Eigenschaften und Methoden (Definieren des Objektverhaltens).

ViewModel : Der Begriff ViewModel stammt aus dem MVVM- Entwurfsmuster (Model View ViewModel). Es gibt Fälle, in denen die von der Ansicht zu rendernden Daten von zwei verschiedenen Objekten stammen. In solchen Szenarien erstellen wir eine Modellklasse, die aus allen für die Ansicht erforderlichen Eigenschaften besteht. Es ist kein Domänenmodell, sondern ein ViewModel, da es von einer bestimmten Ansicht verwendet wird. Außerdem repräsentiert es kein Objekt der realen Welt.

DataModel : Um ein Problem zu lösen, interagieren Objekte miteinander. Einige Objekte teilen eine Beziehung zwischen ihnen und bilden folglich ein Datenmodell, das die Objekte und die Beziehung zwischen ihnen darstellt.

Wenn wir in einer Anwendung, in der Kundenaufträge verwaltet werden, beispielsweise ein Kunden- und ein Bestellobjekt haben, haben diese Objekte eine viele-zu-viele-Beziehung zwischen ihnen. Das Datenmodell hängt letztendlich davon ab, wie unsere Objekte miteinander interagieren. In einer Datenbank sehen wir das Datenmodell als ein Netzwerk von Tabellen, die auf einige andere Tabellen verweisen.

Um mehr über Objektbeziehungen zu erfahren, besuchen Sie meinen Blog-Beitrag: Grundlagen von Objektbeziehungen

Weitere Informationen finden Sie in meinem Blogbeitrag: Entity vs Model vs ViewModel vs DataModel


3

Um über Entity Bescheid zu wissen, müssen Sie zunächst über Class Bescheid wissen. Alle stellen dieselben Felder dar, aber die Terminologie ändert sich basierend auf der Deklaration.

Betrachten wir als Beispiel eine Tabelle aus einer beliebigen Datenbank [SQL, ORACLE, Informix, Cassandra ..].

KLASSE:

Im Allgemeinen wird eine Tabelle als Klasse betrachtet, bis sie zu edmx oder dbmx hinzugefügt wird.

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

ENTITÄT:

  • Nach dem Ziehen / Hinzufügen der Tabelle in dbmx / edmx wird sie als Entität bezeichnet.

  • Jede Entität wird aus ihrer entsprechenden Klasse generiert, und wir können der Entität Attribute hinzufügen, die zum Ausführen von Operationen mit
    linq oder entity verwendet werden.

DATENMODELL:

  • Enthält alle Felder in der Tabelle.

  • DATAMODEL ist eine direkte Klassenreferenz auf Ihre cshtml oder Ihren Controller, über die Sie auf die Attribute zugreifen können, um CRUD-Operationen auszuführen.

VIEWMODEL:

  • In einigen Situationen müssen CRUD-Operationen mehr als ein Modell (Tabelle) ausführen.
  • Also kombinieren wir alle unsere erforderlichen Modelle in einer Klasse und definieren sie in ihrem Konstruktor.

Beispiel: Nehmen wir an

//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;
}

2

Entität:

Eine Entität ist die Darstellung eines realen Elements in Object Relational Mapping (ORM) als Entity Framework. Diese Darstellung wird einer Tabelle in einer Datenbank zugeordnet und ihre Attribute werden in Spalten umgewandelt. Eine Entität wird mit einer POCO-Klasse geschrieben, die eine einfache Klasse ist, wie Sie im folgenden Beispiel in C # sehen können:

using System;
using System.Collections.Generic;
using System.Text;

namespace MyAplication.Entity
{
    public class Person
    {
        public long PersonId { get; set; }
        public string Name { get; set; }
        public short Age { get; set; }
    }
}

Die Arbeit mit der Erstellung von Benutzeroberflächen ist eine komplexe Aufgabe. Um die Organisation zu gewährleisten, unterteilen Programmierer ihre Anwendungen in Ebenen.

Jede Schicht ist für eine Aufgabe verantwortlich und dies verhindert, dass der Code durcheinander gebracht wird. In diesem Szenario werden die Architekturmuster wie MVC und MVVM angezeigt.

Modell:

Innerhalb der MVC haben wir eine Schicht, die für die Darstellung der zuvor gespeicherten Daten verantwortlich ist. Eine gegebene kann eine Instanz einer Person sein, die im vorherigen Beispiel modelliert wurde. Diese Ebene ist das Modell. Diese Vorlage wird zum Erstellen der Ansicht verwendet.

ViewModel:

Ein ViewModel in der MVVM-Architektur ähnelt einem Modell in der MVC-Architektur. Ein ViewModel ist jedoch eine vereinfachte Darstellung der Daten mit nur den Informationen, die für die Erstellung einer Ansicht erforderlich sind.

using System;
using System.Collections.Generic;
using System.Text;
using MyAplication.Web.ViewModel.BaseViewModel;

namespace MyAplication.Web.ViewModel.Person
{
    public class PersonNameViewModel : BaseViewModel<string>
    {
        //I just neet the name
        public string Name { get; set; }
    }
}

Datenmodell:

Es ist einfach ein abstraktes Modell (dieses Modell unterscheidet sich vom MVC-Ebenenmodell), das die Beziehungen herstellt, die zwischen den Elementen bestehen, die reale Entitäten darstellen. Es ist ein sehr umfassendes Thema.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.