Вы можете позволить разработчику данных сгенерировать реляционную модель и код DDL. Затем откройте редактор сценариев SQL в APEX, вставьте код DDL, дайте сценарию имя и выполните его - см. Снимки экрана ниже.
(пример) ERD
Реляционная модель (сгенерированная)
DDL-код (сгенерированный)
Редактор сценария APEX (обратите внимание на ограничение CHECK, обеспечивающее выполнение "ar c ")
Скрипт выполнен
Возможно, вам придется немного подправить сценарий (если есть сообщения об ошибках).
Затем вы должны провести некоторое тестирование, чтобы увидеть, что «ar c» действительно работает, например,
Тестирование
-- these 3 INSERTs must fail
-- {1} event without a "venue id"
insert into event (
id, eventdate, private_home_id, public_space_id
) values (
1, sysdate, null, null
) ;
-- ORA-02290: check constraint (...ARC_1) violated
-- {2} private home does not exist
insert into event (
id, eventdate, private_home_id, public_space_id
) values (
1, sysdate, 1000, null
) ;
-- ORA-02291: integrity constraint (...EVENT_PRIVATE_HOME_FK) violated - parent
key not found
-- {3} public space does not exist
insert into event (
id, eventdate, private_home_id, public_space_id
) values (
1, sysdate, null, 2000
) ;
-- ORA-02291: integrity constraint (...EVENT_PUBLIC_SPACE_FK) violated - parent
key not found
ВСТАВИТЬ некоторые данные в таблицы PRIVATE_HOME и PUBLIC_SPACE
-- add a PRIVATE_HOME and a PUBLIC_SPACE
insert into private_home( id, vname ) values ( 1000, 'The Manor' ) ;
insert into public_space( id, vname ) values ( 2000, 'Royal Albert Hall' ) ;
-- add 2 events
insert into event (
id, eventdate, private_home_id, public_space_id
) values (
1, sysdate, 1000, null
) ;
insert into event (
id, eventdate, private_home_id, public_space_id
) values (
2, sysdate, null, 2000
) ;
select * from event ;
SQL> select * from event ;
ID EVENTDATE PRIVATE_HOME_ID PUBLIC_SPACE_ID
---------- --------- --------------- ---------------
1 06-MAY-20 1000
2 06-MAY-20 2000