web-dev-qa-db-fra.com

quelle est la différence entre un modèle et une entité

Je suis confus de comprendre quel est le sens de ces mots:

Entity, Model, DataModel, ViewModel

Est-ce que n'importe quel corps peut m'aider à les comprendre s'il vous plaît? Merci à tous.

44
agent47

J'espère que je n'ai pas manqué votre point ici king.net ...

Quoi qu'il en soit, en supposant que vous parlez de modélisation d'entité ou de modélisation d'entité-relation (ERD):

  • une entité représente toute entité du monde réel - par exemple étudiant, cours,
  • une entité aura des attributs - par exemple l'élève a un prénom, un nom de famille et une date de naissance
  • une entité aura des relations - par exemple étudiant "est inscrit sur" cours (où étudiant et cours sont des entités avec des attributs et "est inscrit sur" est la relation.
  • la relation peut être "un à un", "un à plusieurs" ou "plusieurs à plusieurs" - par exemple un étudiant "est inscrit à" de nombreux cours et de même un cours "a" de nombreux étudiants.
  • les relations ont également une cardinalité

L'ajout de relations entre entités crée un "modèle de données". Vous avez modélisé un système du monde réel et les entités/objets internes de ce système. L'étape suivante consiste à le normaliser pour s'assurer qu'il respecte la "forme normale".

En termes ERD, vous pouvez avoir des modèles "logiques" et "physiques". La logique décrit le modèle de données en termes simples de haut niveau qui retiennent les détails techniques nécessaires à sa mise en œuvre. Il représente l'aperçu de la solution système. Le modèle physique comprend les détails techniques nécessaires à la mise en œuvre effective du système (tels que les "tables de jointure plusieurs à plusieurs" nécessaires à la mise en œuvre de relations "plusieurs à plusieurs").

Voici quelques tutoriels en ligne (même si je suis sûr qu'il doit y en avoir des milliers):

Je ne sais pas trop ce que vous entendez par "modèle" et "voir le modèle" dans un contexte connexe. Je ne sais pas si vous pouvez confondre cela avec le paradigme Model-View-Controller (MVC). Ici, un modèle est un composant de données et la vue représente un observateur de ces données (comme un composant d'interface utilisateur de tableau ou de graphique). Il y a beaucoup en ligne expliquant "contrôleur de vue du modèle" ou "MVC".

J'espère que cela aide, Wayne

35
wmorrison365

La définition de ces termes est assez ambiguë. Vous trouverez différentes définitions à différents endroits.

Entité : une entité représente une seule instance de votre objet de domaine enregistrée dans la base de données en tant qu'enregistrement. Il possède certains attributs que nous représentons sous forme de colonnes dans nos tableaux.

Modèle : Un modèle représente généralement un objet du monde réel lié au problème ou à l'espace de domaine. En programmation, nous créons des classes pour représenter des objets. Ces classes, appelées modèles, ont certaines propriétés et méthodes (définissant le comportement des objets).

ViewModel : Le terme ViewModel provient du [~ # ~] mvvm [~ # ~] (Model View ViewModel) modèle de conception. Il existe des cas où les données à restituer par la vue proviennent de deux objets différents. Dans de tels scénarios, nous créons une classe de modèle qui comprend toutes les propriétés requises par la vue. Ce n'est pas un modèle de domaine mais un ViewModel car une vue spécifique l'utilise. En outre, il ne représente pas un objet du monde réel.

DataModel : Afin de résoudre un problème, les objets interagissent entre eux. Certains objets partagent une relation entre eux et, par conséquent, forment un modèle de données qui représente les objets et la relation entre eux.

Dans une application gérant des commandes client, par exemple, si nous avons un objet client et commande, ces objets partagent une relation plusieurs à plusieurs entre eux. Le modèle de données dépend finalement de la façon dont nos objets interagissent les uns avec les autres. Dans une base de données, nous voyons le modèle de données comme un réseau de tables faisant référence à d'autres tables.

Pour en savoir plus sur les relations d'objet, visitez: Basics of Object Relationships

Pour plus de détails, visitez: Entity vs Model vs ViewModel vs DataModel

35
Gaurav Gahlot

Tout d'abord, pour connaître l'Entité, vous devez connaître la Classe. Tous représentent les mêmes champs mais la terminologie change en fonction de la déclaration.

Prenons l'exemple d'une table de n'importe quelle base de données [SQL, Oracle, Informix, Cassandra ..].

CLASSE:

Généralement, une table est considérée comme une classe jusqu'à ce qu'elle soit ajoutée à edmx ou dbmx.

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

ENTITÉ:

  • Après avoir fait glisser/ajouter la table dans dbmx/edmx, elle est appelée Entité.

  • Chaque entité est générée à partir de sa classe correspondante et nous pouvons ajouter des attributs à l'entité qui sont utilisés pour effectuer des opérations en utilisant
    linq ou entité.

MODÈLE DE DONNÉES:

  • Contient tous les champs de la table.

  • DATAMODEL est une référence de classe directe à votre cshtml ou contrôleur où vous pouvez accéder aux attributs pour effectuer des opérations CRUD.

VIEWMODEL:

  • Dans certaines situations, nous devons effectuer des opérations CRUD sur plusieurs modèles (tableau).
  • Nous combinons donc tous nos modèles requis dans une classe et les définissons dans son constructeur.

Exemple: supposons

//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;
}
3
Ravi Kiran

Entité:

Une entité est la représentation d'un élément du monde réel dans le mappage relationnel objet (ORM) en tant que cadre d'entité. Cette représentation sera mappée à une table dans une base de données et ses attributs seront transformés en colonnes. Une entité est écrite à l'aide d'une classe POCO qui est une classe simple, comme vous pouvez le voir dans l'exemple suivant en C #:

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

Travailler avec la création d'interface utilisateur est une tâche complexe. Pour garder les choses organisées, les programmeurs séparent leurs applications en couches.

Chaque couche est responsable d'une tâche et cela empêche le code d'être gâché. C'est dans ce scénario que les modèles architecturaux comme le MVC et le MVVM apparaissent.

Modèle:

Au sein du MVC, nous avons une couche chargée de représenter les données précédemment stockées, une donnée pourrait être une instance d'une personne modélisée dans l'exemple précédent. Cette couche est le modèle. Ce modèle sera utilisé pour construire la vue.

ViewModel:

Un ViewModel dans l'architecture MVVM ressemble beaucoup à un modèle dans l'architecture MVC. Cependant, un ViewModel est une représentation simplifiée des données avec uniquement les informations nécessaires à la construction d'une vue.

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

Modèle de données:

Il s'agit simplement d'un modèle abstrait (ce modèle est différent du modèle de couche MVC) qui établit les relations qui existent entre les éléments qui représentent des entités du monde réel. C'est un sujet très complet.

2
Alexandre Tavares