Создание таблицы

В качестве примера возьмем вымышленный объект Кафе-бар "Veine". Наш документ будет состоять из трех гридов и шапки. В шапке будет выбираться Кафе-бар "Veine" и отдел снабжения. В первом гриде будут находится наименования блюд. Во втором гриде - наименования продуктов для приготовления блюд. В третьем гриде - наименования продуктов для замены.

Любой объект в среде СУБД Oracle должен носить название. Ниже приведена расшифровка названий, которые будут использоваться при создании Таблиц (Tables), Видов (Views), Индексов (Indexes), Последовательности (Sequences) и Триггеров (Triggers).

Прежде чем создать любой документ, необходимо представить как он будет выглядеть в готовом виде, определить сколько в нём будет колонок, какой их тип, где будет первичный и внешние ключи, какие колонки будут со значением "Not Null" и т.д.

Grid № 1:

● Колонка NRDOC является первичным ключом и связана внешним ключом с TMDB_DOCS с колонкой COD. (В таблице TMDB_DOCS одна запись приравнивается к одному документу.)

● Колонка NRDOC1 так же является первичным ключом.

● Колонка Дата (DATA) предназначена для записывания даты.

● Колонка Код(DISH) связана внешним ключом со справочником TMS_UNIVERS (с колонкой COD).

● Колонка Наименование блюд (CLCDISHT) предназначена для вставки текста из справочника TMS_UNIVERS.

● Колонки Передано (CANT1) Возвращено (CANT2) и Итого кол-во (CANT3) предназначены для численного заполнения.

Grid № 2

● Колонки NRDOC, NRDOC1 и NRDOC2 являются первичными ключами.

● Колонки NRDOC, NRDOC1 связаны внешним ключом с таблицей YVEINE_TMDB_INTAKE_LIST_A (Колонки NRDOC, NRDOC1) [Grid 1].

● Колонка Код (PRODUCT) связана внешним ключом со справочником TMS_UNIVERS (с колонкой COD).

● Колонка Наименование продуктов (CLCPRODUCTT) предназначена для вставки текста из справочника TMS_UNIVERS.

● Колонки Норма (CANT1), Цена (PRET1) и Сумма (SUMA1) предназначены для числовых значений.

Grid № 3

● Колонки NRDOC, NRDOC1, NRDOC2 и NRDOC3 являются первичными ключами.

● Колонки NRDOC, NRDOC1 и NRDOC2 связаны внешним ключом с таблицей YVEINE_TMDB_INTAKE_LIST_B (Колонки NRDOC, NRDOC1 и NRDOC2) [Grid 2].

● Колонка Код (PRODUCT) связана внешним ключом со справочником TMS_UNIVERS (с колонкой COD).

● Колонка Наименование продуктов для замены (CLCPRODUCTT) предназначена для вставки текста из справочника TMS_UNIVERS.

● Колонка Количество (CANT1) предназначена для числовых значений.

Используемое программное обеспечение:

ОС Windows 8.1 Build 9431

Oracle VM VirtualBox 4.2.18 r88780

Toad for Oracle 11.6

Oracle 10g 10.2.0.3

Universal Accounting Build 4.1.5.52

Глава 1 Создание таблицы

1.1 Добавление колонок и создание внешних ключей

Для создания таблицы необходимо с помощью программы Toad подключиться к рабочей схеме. Для этого заполним необходимые поля и нажмем

для подключения.

Перейдем в Schema Browser с помощью кнопки

Далее нажимаем на кнопку

для создания таблицы.

Напротив

записываем название таблицы. В данном случае это YVEINE_TMDB_INTAKE_LIST_A (см. Введение).

С помощью кнопки

добавляем колонки.

Добавляем колонку NRDOC с Data Type NUMBER и точностью (Precision) 10. Ставим галочки ниже PK (Primary Key) и Not Null.

Далее добавляем колонку NRDOC1 с точно такими же параметрами. Колонка NRDOC1как и NRDOCявляется первичным ключом(PK) и с ненулевым значением.

Добавляем поле IDс числовым типом данных(NUMBER) и точностью (Precision) 10.

Далее добавляем колонку DATAс типом данных DATE.

Колонка DISH(Блюдо) имеет такой же тип данных и точность как и колонка ID.

И последними добавляем колонки CANT1

CANT2и

CANT3с одинаковыми типом данных и точностью.

Далее нажимаем на вкладку

Здесь уже есть первичный ключ(PK) который представлен двумя колонками. Нажимаем на

В появившемся окне выбираем внешний ключ (Foreign Key) и нажимаем

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

Выбираем поле NRDOC.

Далее переходим на вкладку

и из списка выбираем таблицу TMDB_DOCS.

В левой части находятся поля таблицы TMDB_DOCS. Выбираем поле COD. Ограничениям (Constraints) необходимо давать имя. Кнопка

предложит имя по умолчанию. Но можно написать и свой вариант.

Далее переходим на вкладку

и ставим галочки напротив On Delete Cascade (для каскадного удаления) и Deferrable-Initially Deferred. (чтобы Constraint проверялись только на Commit'e)

Далее нажимаем на ,выбираем внешний ключ (Foreign Key) и нажимаем

Выбираем колонку DISH (Блюдо) и переходим на вкладку

Выбираем из списка справочник TMS_UNIVERS.

И выбираем колонку COD. После чего даём ограничению имя либо произвольно, либо с помощью кнопки

После выполненных действий нажимаем кнопку

Для того чтобы таблица появилась в списке нажимаем на

"Refresh all objects".

После чего в поиске вводим название и находим созданную таблицу.

Теперь приступим к созданию второй таблицы. Для этого нажимаем на

Напротив

вводим имя второй таблицы YVEINE_TMDB_INTAKE_LIST_B (см. Введение).

С помощью кнопки

добавляем колонки.

Добавляем колонку NRDOCс типом данных (Data Type) NUMBER, точностью (Precision) 10, устанавливаем первичный ключ (PK) и ненулевое значение (Not Null).

Тоже самое делаем и с колонкой NRDOC1

и NRDOC2.

Далее добавляем колонку IDс типом данных (Data Type) NUMBERи точностью (Precision) 10.

Колонки CANT,

PRET1,

SUMA1и

PRODUCTидентичны колонке ID.

После заполнения всех колонок переходим на вкладку

Здесь уже находится первичный ключ, представленный тремя колонками (NRDOC, NRDOC1и NRDOC2).

Нажимаем на кнопку

в появившемся окне выбираем внешний ключ (Foreign Key) и нажимаем

Выбираем поля NRDOCи NRDOC1.

Переходим на вкладку

и выбираем из списка ранее созданную таблицу YVEINE_TMDB_INTAKE_LIST_A.

После чего выбираем поля NRDOCи NRDOC1. Далее даём произвольное имя или с помощью кнопки

имя по умолчанию.

Переходим на вкладку

и ставим галочки напротив On Delete Cascade (для каскадного удаления) и Deferrable-Initially Deferred. (чтобы Constraint проверялись только на Commit'e)

Далее нажимаем на

Выбираем внешний ключ (Foreign Key) и нажимаем

Выбираем колонку PRODUCT.

Переходим на вкладку

и выбираем справочник TMS_UNIVERS.

Добавляем поле CODи даём произвольное имя, либо воспользуемся кнопкой

После добавления всех ограничений нажимаем кнопку

Для добавления таблицы в список воспользуемся кнопкой

"Refresh all objects" для обновления.

Введём в поиске имя только что созданной таблицы.

Далее переходим к созданию третьей таблицы. Для этого нажимаем на кнопку

Напротив

записываем имя таблицы. YVEINE_TMDB_INTAKE_LIST_С (см. Введение). С помощью кнопки

добавляем колонку NRDOC,

NRDOC1,

NRDOC2и

NRDOC3с типом данных (Data Type) NUMBER, точностью (Precision) 10, первичным ключом (PK) и ненулевыми значениями (Not Null).

Далее добавляем колонку ID с типом данных (Data Type) NUMBERи точностью (Precision) 10.

Добавим идентичными предыдущей колонке колонки CANT1и

PRODUCT.

Переходим на вкладку

и нажимаем

В открывшемся окне выбираем внешний ключ (Foreign Key) и нажимаем

Выбираем колонки NRDOC, NRDOC1и NRDOC2.

Переходим на вкладку

и выбираем предыдущую таблицу YVEINE_TMDB_INTAKE_LIST_B.

После выбираем колонки NRDOC, NRDOC1 и NRDOC2 и даём имя либо произвольное, либо с помощью кнопки

Далее переходим на вкладку

и ставим галочки напротив On Delete Cascade (для каскадного удаления) и Deferrable-Initially Deferred. (чтобы Constraint проверялись только на Commit'e)

Далее добавляем еще один внешний ключ (Foreign Key) с помощью кнопки

и нажимаем

Выбираем колонку PRODUCT.

Переходим на вкладку

и выбираем справочник TMS_UNIVERS.

Выбираем колонку CODи задаём имя.

После добавления всех ограничений (Constraints) нажимаем

Для отображения с списке таблиц только что созданной таблицы нажмем

"Refresh all objects".

В поиске введём название.

Для завершения текущей транзакции с сохранением нажмем

Commit”.