Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Форенкей на составной пк...  [new]
Mb1WA
Member

Откуда:
Сообщений: 52
Добрый вечер господа.
Мучаю мозг и мне кажется, что зря.
Есть две таблицы, в одной составной пк из двух полей, а во второй на него надо ссылаться из одного поля, так как эта таблица хранит данные многих таблиц таким образом(по id).
Я вот искал как оракл хранит составной пк и не нашел. Думал это значение засовывать в таблицу.
Есть ли возможные способы для такого изврата?
Нужно сделать имено так, без создания промежуточных линкующих таблиц и т.п.
9 июл 09, 19:46    [7399175]     Ответить | Цитировать Сообщить модератору
 Re: Форенкей на составной пк...  [new]
Elic
Member

Откуда:
Сообщений: 29990
Mb1WA
в одной составной пк из двух полей, а во второй на него надо ссылаться из одного поля
Чтобы сослаться, нужны тоже два столбца.
9 июл 09, 19:52    [7399185]     Ответить | Цитировать Сообщить модератору
 Re: Форенкей на составной пк...  [new]
Mb1WA
Member

Откуда:
Сообщений: 52
А так чтобы обойтись только одним?
9 июл 09, 19:53    [7399187]     Ответить | Цитировать Сообщить модератору
 Re: Форенкей на составной пк...  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
Mb1WA,

Добавить столбец с ограничениями UNIQUE и NOT NULL, заполнить чем-нибудь неповторяющимся. Забацать sequence + trigger, в нём заполнять для последующих строк.
9 июл 09, 19:54    [7399190]     Ответить | Цитировать Сообщить модератору
 Re: Форенкей на составной пк...  [new]
Mb1WA
Member

Откуда:
Сообщений: 52
suPPLer,

Это хороший вариант, но нужно не изменять таблицу и не создавать дополнительных объектов.
9 июл 09, 19:56    [7399195]     Ответить | Цитировать Сообщить модератору
 Re: Форенкей на составной пк...  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
Mb1WA,

... со временем желательно перенести PK на этот суррогатный ключ.
9 июл 09, 19:56    [7399196]     Ответить | Цитировать Сообщить модератору
 Re: Форенкей на составной пк...  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
Mb1WA
suPPLer,

Это хороший вариант, но нужно не изменять таблицу и не создавать дополнительных объектов.


У меня есть ещё один ненормальный вариант: хранить to_char(pk_col1) || '<разделитель>' || to_char(pk_col2) в Вашей второй таблице. Но я не вижу в этом смысла. Почему нельзя добавить столбец в уже существующую таблицу? Почему нельзя добавить отдельную таблицу, вертикально секционировав Вашу таблицу с составным полем + суррогатный ключ?
9 июл 09, 20:03    [7399207]     Ответить | Цитировать Сообщить модератору
 Re: Форенкей на составной пк...  [new]
Mb1WA
Member

Откуда:
Сообщений: 52
suPPLer
Mb1WA
suPPLer,

Это хороший вариант, но нужно не изменять таблицу и не создавать дополнительных объектов.


У меня есть ещё один ненормальный вариант: хранить to_char(pk_col1) || '<разделитель>' || to_char(pk_col2) в Вашей второй таблице. Но я не вижу в этом смысла. Почему нельзя добавить столбец в уже существующую таблицу? Почему нельзя добавить отдельную таблицу, вертикально секционировав Вашу таблицу с составным полем + суррогатный ключ?

Всем большое спасибо. Удалось уговорить все переделать в нормальную структуру.
9 июл 09, 22:12    [7399363]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить