Поля
groupName Group Name VARCHAR2(100) string NOT NULL x Имя группы рассылки
emailAddress Emai laddress VARCHAR2(128) string NOT NULL x Email
firstName First name VARCHAR2(50) string NOT NULL
Имя для обращения
lastName Last name VARCHAR2(50) string NOT NULL
Фамилия для обращения
isInactive Is inactive VARCHAR2(1) NULL
Y/N, отключение строки без удаления
validFrom Valid from DATE date NULL x Начало действия версии
validTo Valid to DATE date NULL
Конец действия
Проверки:
Минимальный набор «защиты от дурака»:
emailAddress — NOT NULL, формат email (regexp), уникальность в рамках groupName;
emailAddress - не важно с какой буквы (заглавная или маленькая) должно восприниматься как одно значение
groupName— NOT NULL, непустой, без пробелов по краям;
firstName, lastName — NOT NULL, непустые;
isInactive — только Y/N (или NULL);
validFrom, validTo — NOT NULL, непустые;
validFrom <= validTo;
запрет на дубли (groupName, emailAddress) с разными isInactive — одна активная строка;