Чтобы ответить на ваш вопрос: добавление ограничения UNIQUE
в столбце с дублирующимися значениями приведет к ошибке.
Например, вы можете попробовать следующий скрипт:
CREATE TABLE `USER` (
`USER_ID` INT NOT NULL,
`USERNAME` VARCHAR(45) NOT NULL,
`NAME` VARCHAR(45) NULL,
PRIMARY KEY (`USER_ID`));
INSERT INTO USER VALUES(1,'apple', 'woz'),(2,'apple', 'jobs'),
(3,'google', 'sergey'),(4,'google', 'larry');
ALTER TABLE `USER`
ADD UNIQUE INDEX `USERNAME_UNIQUE` (`USERNAME` ASC);
/*
Operation failed: There was an error while applying the SQL script to the database.
ERROR 1062: Duplicate entry 'apple' for key 'USERNAME_UNIQUE'
*/
Мой любимый Пассивное Представление . Более тестируемый, чем другие я видел включая MVC.
Я иногда видел MVC без C, где представление прислушивается к изменениям в данных модели и изменяет рендеринг соответственно, и где методы в модели связываются с обработчиками событий для представления.
Для проектов, где представление при необходимости, сильно связывают с данными (такой как тогда, когда существуют визуальные компоненты, которые непосредственно касаются модели или атрибутов модели), это может быть довольно полезно, поскольку это отключает "среднего человека".
я думаю, что многие утверждали бы, тем не менее, что это - все еще MVC, просто гибридизированная версия, и что привязка, установленная между представлением и моделью, является логикой контроллера.
Ну, существует Образцовый Предъявитель Представления, но я думаю, что Вы найдете, что наиболее распространенная "альтернатива" MVC является действительно отсутствием надлежащего разделения. Как экстремальный пример, рассмотрите классические ASP-страницы, где HTML, VBScript и SQL найдены бок о бок в том же файле. (Это не удар ASP —, Вы найдете много таких примеров на других языках.)
Хотя вышеупомянутые ответы довольно корректны, я думаю, что намного более важно отметить, что слова "шаблон разработки" абсолютно неизвестны 90% всех людей, которые создают программное обеспечение. Они только начинают писать код.
проблема не выбирает лучший подход дизайна, она убеждает других, что дизайн имеет значение.
You can roll your own MVC with the current ASP.NET framework and still keep the postback model.
http://www.codeproject.com/KB/aspnet/RollingYourOwnMVCwithASP.aspx
В веб-фреймворке Lift мы используем подход View First . В основном представление состоит из одного или нескольких фрагментов (несколько похожих на контроллеры), и фрагменты могут быть вложенными. Это очень хорошо работает со встроенными возможностями обработки XML в HTML и Scala.
Семейство паттернов Presentation-Abstraction-Control (PAC), где интерфейс/взаимодействие обрабатывается иерархией агентов.
Статья в Википедии не очень хороша. http://en.m.wikipedia.org/wiki/Presentation-abstraction-control
Некоторые другие архитектурные шаблоны, включая MVC.
Многоуровневые системы
TCP / IP
Объектно-ориентированная организация
Модель-представление-контроллер , Презентация-абстракция-управление , Презентатор представления модели и Обзор модели ViewModel .
Примерами могут служить ASP.NET MVC, Ruby on Rails и множество других.
Неявный вызов на основе событий
Среда браузера (DOM)
Конвейер и архитектура фильтрации
Каналы Unix
Репозитории
Табличные интерпретаторы
Вы также можете найти этот документ Гарлан и Шоу об архитектуре программного обеспечения, хорошее чтение.
Еще одна заслуживающая внимания ссылка - это статья об архитектурных паттернах в Википедии .