Модель в MVC

IIUC:

DELIMITER $

CREATE TRIGGER amount_due_cal BEFORE INSERT ON membership
  FOR EACH ROW
    BEGIN
    SET NEW.amount_due := (
        SELECT price FROM m_type WHERE type_id = New.type_id) - NEW.amount_paid;
END $    
DELIMITER ;

Если это не сработает, дайте мне знать.

Также обратите внимание, что type_id должен быть уникальным индексом / первичным ключом для таблицы price, иначе это не сработает.

5
задан TStamper 3 April 2009 в 20:04
поделиться

5 ответов

Мне нравится на самом деле добавлять дополнительный слой для создания вещей более ясными. В основном "Модель" является вещью, которая является зависящей от домена, и знает, как сохранить себя (предположение, что персистентность является частью домена).

IMO, другой слой, который я упомянул, я называю ViewModel... иногда, "модель", которая передается представлению действительно, не имеет никакого отношения к домену... это будет иметь вещи как информация о проверке, пользовательская информация о дисплее, значения списка поиска для отображения в представлении.

Я думаю, что это - разъединение, которое Вы имеете :-)

9
ответ дан 18 December 2019 в 06:12
поделиться

Модель является "проблемно-ориентированным представлением информации, на которую воздействует приложение". Это не просто модель данных, поскольку это ниже находится на одном уровне, чем шаблон MVC думает о, но (например) это - классы, которые инкапсулируют данные и позволяют Вам выполнить обработку на них.

Scott Guthrie от MS использует это определение в своем объявлении:

"Модели" в MVC базировались, приложение компоненты приложения, которые ответственны за поддержание состояния. Часто это состояние сохраняется в базе данных (например: у нас мог бы быть класс продукта, который используется для представления данных порядка из таблицы продуктов в SQL).

Дальнейшее чтение:

11
ответ дан 18 December 2019 в 06:12
поделиться

Ваши источники совета корректны, когда они говорят, что это - модель предметной области. Во многих экземплярах это будет вполне тесно выровненное Ваша модель данных также.

То, где модели предметной области и модели данных отличаются, - то, что модель данных относительно статична в форме (не довольный), тогда как Ваша модель предметной области добавляет определенные ограничения и правила Вашего домена. Например, в моей модели данных (база данных) я представляю кровяное давление как smallints (систолический и диастолический). В моей модели предметной области у меня есть объект "показания кровяного давления", который содержит значения для каждого из этих двух чтений, и это также вводит дополнительные ограничения для диапазона допустимых значений (например, диапазон для систолического намного меньше, чем это для smallints). Это также добавляет качественные суждения по этим значениям (BP 150/90 "высока").

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

4
ответ дан 18 December 2019 в 06:12
поделиться

Необходимо взглянуть на это он пошаговое учебное руководство.

Из одной из глав: страница 26

В платформе образцового контроллера представления термин “модель” относится к объектам, которые представляют данные приложения, а также соответствующую доменную логику, которая интегрирует проверку и бизнес-правила с нею. Модель является во многих отношениях “основой” основанного на MVC приложения, и как мы будем видеть, позже существенно управляет поведением его.

Надежда его полезное.

2
ответ дан 18 December 2019 в 06:12
поделиться

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

0
ответ дан 18 December 2019 в 06:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: