![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Пишу дипломную с помощью Interbase Как вам такая реализация БД
Есть таблица UHETMASHIN в которой бухгалтер вставляет все записи о партий импортированных машин, также есть подчиненная таблица MASHINA (которая будет связана посредством триггера, потому что если на табл делаещь Constraint Foreign key невозможно реализовать какие либо триггера на эту табл). Есть также таблица SKLAD в которой как вы заметили дублируется информация из двух таблиц, что совершенно противоречит теорий нормализаций БД, но такова логика моей БД. Все бы отлично, но есть проблема. Нужно чтобы в SKLAD копировалась некоторая информация из таблицы UHETMASHIN (а именно, AKTPRIEMKI), и из табл MASHIN (а именно,MARKA ,KOLVO , PREIS, PRIM, FOTO). Попробовал с помощью триггера After Delete, но он выдае ошибку, что программа не может выполнится так как входные параметры не соответствуют выходным , то есть если копируещь данные с помощью After Delete, то таблицы по структуре должны быть соверщенно одинаковы, вопрос как организовать такое копирование отдельных полей? CREATE TABLE UHETMASHIN // таблица учета Импортированных машин (KOD INTEGER NOT NULL, // ключ таблицы DATAPRIEMKI DATE DEFAULT 'Now', // дата приемки машин DEKLAR BLOB SUB_TYPE 1 SEGMENT SIZE 120, //Таможенные деклараций PREISALL DOUBLE PRECISION, //Вся цена импортированных машин(партий) ZAKTK BLOB SUB_TYPE 1 SEGMENT SIZE 120, // Заключение технической коммиссий AKTPRIEMKI BLOB SUB_TYPE 1 SEGMENT SIZE 120, // Акт приемки-передачи NDS COMPUTED BY (PreisAll*0.16), //НДС AKZIZ COMPUTED BY (PreisAll*0.2), //Акциз PRIM VARCHAR(30), // поле для примечания KOLVO INTEGER, // кол-во SUMMA COMPUTED BY (PREISALL*KOLVO)); // Сумма CREATE TABLE MASHINA // таблица Машин (KODM INTEGER NOT NULL, // код машины KODUM INTEGER NOT NULL, // код учета машин будет связано между таблицей UHETMASHIN посредством триггера, а не с помошью Constraint Foreign key MARKA VARCHAR(50), // марка машины PREIS DOUBLE PRECISION, // Цена каждой машины PRIM VARCHAR(20), // поле для примечания FOTO BLOB SUB_TYPE 0 SEGMENT SIZE 80); // фото машины CREATE TABLE SKLAD //таблица склада машин ( KODS INTEGER NOT NULL, // ключ AKTPRIEMKI BLOB SUB_TYPE 1 SEGMENT SIZE 80, // акт-приемки дублируется с табл UHETMASHIN KOLVO INTEGER, // кол-во машин дублируется с табл MASHINА MARKA VARCHAR(50), //марка машины дублируется с табл MASHINА PREIS DOUBLE PRECISION, // Цена отдельной машины дублируется с табл MASHINА PRIM VARCHAR(20), //поле примечания дублируется с табл MASHINА FOTO BLOB SUB_TYPE 0 SEGMENT SIZE 80); // фото машины дублируется с табл MASHINА ![]() |