Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Домены  [new]
С. В.
Guest
При создании базы данных столкнулся со следующей проблемой. В определении таблиц этой бд очень часто встречаются поля с одинаковым типом данных и поведением. С тем чтоб не копировать constraintы (иногда очень длинные) по сто раз с одного столбца в другой, было бы логично вместо этого создать определенный домен и при определении поля указывать этот домен. В Оракле как оказалось доменов нет а пользовательские типы можно использовать только в PL/SQL. Неужели копирование constraintов единственный выход из данной ситуации, существует ли какое либо другое более изящное решение подобной проблемы?
18 май 06, 14:22    [2679264]     Ответить | Цитировать Сообщить модератору
 Re: Домены  [new]
SvarogTFF
Member

Откуда: Киев
Сообщений: 163
С. В.
В Оракле как оказалось доменов нет а пользовательские типы можно использовать только в PL/SQL. Неужели копирование constraintов единственный выход из данной ситуации, существует ли какое либо другое более изящное решение подобной проблемы?


На вскидку два варианта:

1 На каждый домен заводить свою справочную таблицу и контролировать целостность с помощью внешних ключей на такие справочные таблицы

2 Сделать один справочников доменов и контролировть с помощью тригеров
18 май 06, 15:21    [2679692]     Ответить | Цитировать Сообщить модератору
 Re: Домены  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5928
С. В.
Неужели копирование constraintов единственный выход из данной ситуации, существует ли какое либо другое более изящное решение подобной проблемы?


Используй средства проектирования/разработки БД высокого уровня, которые поддерживают домены. Они тебе сгенерят нужные DDL скрипты с декларативными ограничениями целостности и триггерами и др..
18 май 06, 15:25    [2679726]     Ответить | Цитировать Сообщить модератору
 Re: Домены  [new]
ModelR
Member

Откуда: Нижний Новгород
Сообщений: 1798
Если без CASE:
Прокомментировать колонки именем домена.
Запустить скрипт, который по комментариям сгенерит констрейны.
18 май 06, 16:02    [2679914]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить