Если между данной записью и LOB существует взаимно-однозначное отношение, то лучше всего объявить столбец LOB в записи. Oracle позволяет нам объявлять отдельное табличное пространство для больших объектов, поэтому это не сильно влияет на хранилище.
create table t23
( id number not null
, col1 number not null
, col2 date not null
, col3 varchar2(255)
, a_doc clob
, x_doc xmltype
, constraint t23_pk primary key (id)
)
tablespace app_date
lob (a_doc) store as basicfile a_lob (tablespace lob_data)
lob (x_doc) store as securefile x_lob (tablesapce xml_data)
/
(SECUREFILE - это версия Enterprise Edition, представленная в версии 11g. Подробнее ).
Главное в этом подходе заключается в том, что вам придется явно указывать столбцы, которые вы хотите выбрать, если вы не хотите включать столбцы больших объектов. Это не должно быть затруднением, так как это лучшая практика: select * from ....
- ошибка, ожидающая своего появления.
«Таблицу три придется хранить
изображения "
Если у вас отношения один-ко-многим, вам понадобится отдельная таблица для изображений.
Существует много тонкостей, когда речь идет о хранении больших объектов и настройке затронутых запросов. Я рекомендую вам прочитать этот официальный документ Oracle с веб-сайта OTN .