Вопрос № 70139: С Новым Годом! Вопрос. Есть 4 таблицы - квартал, отдел, статья и расходы отдела в данном квартале по данной статье. По-моему, в качестве первичного ключа последней таблица естественно выбрать составной ключ (квартал, отдел, статья), однако, встретил ...
Вопрос № 70.139
С Новым Годом! Вопрос. Есть 4 таблицы - квартал, отдел, статья и расходы отдела в данном квартале по данной статье. По-моему, в качестве первичного ключа последней таблица естественно выбрать составной ключ (квартал, отдел, статья), однако, встретил в литературе рекомендации избегать составных первичных ключей с мотивировкой - неудобно, без подробных объяснений.(напр. Смирнов, Задворьев Работаем с ORACLE). Переделываю проект, в старом использовался в качестве первичного ключа специальный столбец ID-записи, создаваемый
последовательностью. Поделитесь, пожалуйста, опытом или отошлите к литературе.
Отправлен: 09.01.2007, 13:21
Вопрос задал: Shap (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 5)
примерно такая структура родилась у меня в голове, теперь запросы:
Select K.Kvartal_Name, O.Otdel_Name, S.Stat_Name from Rashod R
inner join Kvartal K on K.ID_Kvartal=R.ID_Kvartal /* and Upper(K.Kvartal_Name) like ('ПЕРВЫЙ') */
inner join Otdel O on O.ID_Otdel=R.ID_Otdel /* and Upper(O.Otdel_Name) like ('ПРОИЗВОДСТВЕННЫЙ') */
inner join Stat S on S.ID_Stat=R.ID_Stat /* and Upper(S.Stat_Name) like ('СТАТЬЯ_1') */
( в коментариях приведен пример добавления условий, например
если раскоментировать у квартала, то получим все записи по первому кварталу)
Вопросы будут пишите ! Удачи !
--------- Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: Студент)
Ответ отправлен: 09.01.2007, 13:50
Отвечает: Евгений Крюков
Здравствуйте, Shap!
Если коротко - минус у составного ключа, на мой взгяд, всего один:
если таблица - это справочник, то не очень удобно ссылаться на такой справочник по внешним ключам .
В этом случае лучше генерить суррогатный ключ.
Могут еще возникнуть проблемы при обновлении составного первичного ключа. И еще на сверхпроизводительных системах при массированных вставках построение индекса по нескольким столбцам может замедлить систему (впрочем, это все чисто гипотетически). В остальном нет никаких ограничений. Почитатйте еще вот эту статью - http://ln.com.ua/~openxs/projects/oracle/ora046.html
--------- Большинство ответов на вопросы в рассылках находится через Яндекс за 1 мин.
Ответ отправил: Евгений Крюков (статус: Практикант)
Ответ отправлен: 09.01.2007, 14:22