В чем отличие схемы, модели и сущности?
=========================================

 В чем отличие схемы, модели и сущности?  

*MVC* 

 Если я правильно понял то, что вы хотите узнать, то тут получается такая история.  

**Модель** - это описанный в коде объект, класс, который нужен для манипулирования на уровне абстракции. Модель служит обёрткой над сущностью. Вы просто описываете в ней все присущие ей свойства и методы (если они необходимы). К примеру, вы можете создать модель таблицы базы данных (унаследовавшись от какой-то базовой модели), в которой вы описываете все свойства (столбцы), уточняете их (столбцов) параметры и пр.  

**Сущность** - это то, что хранит модель, уникальный экземпляр, полученный из модели. То есть, если это была модель таблицы БД, то сущностью будет конкретная запись с первичным ключом.  

**Схема** - это связь моделей. То есть схема их взаимодействия. Если брать всю ту же модель таблицы БД, то если у нее появится внешний ключ на другую таблицу, то у них появится связь и схема взаимодействия между собой посредствам их моделей. 

**Модель**  — некоторая абстракция того, что мы проектируем (моделируем):  

- или модель бизнес-абстракции, будь то сущности (платёж, товар, заказ) с состоянием или будь то бизнес-процессы (заказ товара, списание баланса за покупку, увольнение) без состояния или из совокупность  

- или модель данных/хранения (например изображений)  

- или модель чего угодно, что мы спроектировали, кроме инфраструктурных деталей и связующих с ними деталей (контроллеров к примеру), если это не базовая суть нашего кода  

  

**Сущность** — бизнес-модель, которая имеет явный идентификатор и своё состояние (конкретный документ, конкретный юзер, конкретный платёж, где конкретность обусловлена некоторым **уникальным** идентификатором)  

  

**Схема** — абстрактный план чего-то (связей или процессов к примеру)