powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / REFERENCES
16 сообщений из 16, страница 1 из 1
REFERENCES
    #35239465
sa22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот сижу читаю книжку о проектирование реляционных БД, но вот эту фразу что-то никак не осилю
Джен Л. ХаррингтонИмена столбцов внешних ключей указываются после ключевых слов FOREIGN КЕУ. В конструкции REFERENCES содержится имя таблицы того первичноrо ключа, на который производится ссылка. Если столбцы первичноrо ключа заданы в конструкции PRIMARY КЕУ своей таблицы, нет необходимости перечислять их имена. Если же имена столбцов не являются частью конструкции PRIMARY КЕУ, необходимо перечислить столбцы первичноrо ключа в конструкции REFERENCES.

Не могу понять назначение REFERENCES из данного объяснения
...
Рейтинг: 0 / 0
REFERENCES
    #35239547
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Oracle9i SQL Reference

CREATE TABLE dept_20
(
employee_id NUMBER( 4 ),
.....
department_id NUMBER,
CONSTRAINT fk_deptno
FOREIGN KEY (department_id)
REFERENCES departments(department_id) 
);
...
Рейтинг: 0 / 0
REFERENCES
    #35239587
sa22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за пример, пока вижу только что конструкция REFERENCES отличается от конструкции FOREIGN КЕУ лишь указанием имени таблицы содержащей первичный ключ. Смысла по-прежнему не улавливаю
...
Рейтинг: 0 / 0
REFERENCES
    #35239602
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sa22спасибо за пример, пока вижу только что конструкция REFERENCES отличается от конструкции FOREIGN КЕУ лишь указанием имени таблицы содержащей первичный ключ. Смысла по-прежнему не улавливаю

В данном случае столбец, указанный после FOREIGN КЕY - это столбец текущей таблицы, именно ДЛЯ НЕГО будет проверяться ограничение. После REFERENCES указываются данные родительской таблицы - ее имя и столбцы, ПО НИМ будет проверяться ограничение
...
Рейтинг: 0 / 0
REFERENCES
    #35239669
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, назвать References "конструкцией", имхо, несколько громко - это часть объявления FOREIGN KEY и самостоятельного применения не имеет:
Код: plaintext
1.
alter table T2 add
  constraint T2_T1_Id_FK foreign key (t1_id) references t1(Id);
Исходя из этого объявления, допустимым множеством значений поля T2.t1_id будут значения, содержащиеся в столбце Id таблицы T1.

Все еще непонятно?..
...
Рейтинг: 0 / 0
REFERENCES
    #35239721
sa22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ок, спасибо большое, для начала думаю понятно.
...
Рейтинг: 0 / 0
REFERENCES
    #35239803
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sa22Не могу понять назначение REFERENCES из данного объяснения
Чтобы задать связь, нужно задать два ее конца: что ссылается и куда ссылается. Что ссылается - задается полями, перечисленными после foreign key, а также (неявно) таблицей, которой принадлежит этот foreign key. Куда ссылается - задается конструкцией references. Перечисление полей в конструкции references нужно потому, что:

а) в таблице может быть несколько ключей
б) в ключе может быть несколько полей
...
Рейтинг: 0 / 0
REFERENCES
    #35239883
sa22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer sa22Не могу понять назначение REFERENCES из данного объяснения
Чтобы задать связь, нужно задать два ее конца: что ссылается и куда ссылается. Что ссылается - задается полями, перечисленными после foreign key, а также (неявно) таблицей, которой принадлежит этот foreign key. Куда ссылается - задается конструкцией references. Перечисление полей в конструкции references нужно потому, что:

а) в таблице может быть несколько ключей
б) в ключе может быть несколько полей

1. Это нормально если в таблице несколько ключей?
2. Если не а) и не б) , то в REFERENCES нет необходимости?
...
Рейтинг: 0 / 0
REFERENCES
    #35239921
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sa221. Это нормально если в таблице несколько ключей?
Абсолютно. Сродни вопросу "это нормально, что в семье N детей?"

sa222. Если не а) и не б) , то в REFERENCES нет необходимости?
Без references обойтись трудно в любом случае. По идее, если в таблице один ключ из одного поля, то указывать его в references необязательно - и так все однозначно. Поддерживается ли такой синтаксис и где-когда-как - честно говоря не знаю, в данном случае предпочитаю писать единообразно даже если такая возможность и существует.
...
Рейтинг: 0 / 0
REFERENCES
    #35239939
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sa221. Это нормально если в таблице несколько ключей?
Только не надо забывать про нормальные формы. То есть, в конкретном случае может быть и не нормально.
...
Рейтинг: 0 / 0
REFERENCES
    #35239954
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sa222. Если не а) и не б) , то в REFERENCES нет необходимости?Имя таблицы, на которую идет ссылка, пишется ПОСЛЕ ключевого слова References, так что без него обойтись не получится.

Еще раз повторяю, это не самостоятельная "конструкция", а часть объявления FOREIGN KEY. Причем часть обязательная. Судя по всему, вас ввела в заблуждение неудачная формулировка в процитированной вами книге.
...
Рейтинг: 0 / 0
REFERENCES
    #35240098
sa22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
понял, что REFERENCES это часть внешних ключей.
такой по ходу вопрос, сейчас смотрю одну базу, два десятка таблиц, первичные ключи указаны только в половине таблиц, внешних ключей нигде нет. Они что, не всегда нужны?
...
Рейтинг: 0 / 0
REFERENCES
    #35240122
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sa22понял, что REFERENCES это часть внешних ключей.
такой по ходу вопрос, сейчас смотрю одну базу, два десятка таблиц, первичные ключи указаны только в половине таблиц, внешних ключей нигде нет. Они что, не всегда нужны?Странный вопрос. Это вы про PK или FK?
...
Рейтинг: 0 / 0
REFERENCES
    #35240125
sa22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
про ФК
...
Рейтинг: 0 / 0
REFERENCES
    #35240139
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть разные способы реализовывать ограничения, в том числе и FOREIGN KEY. Кроме задания constraint в базе можно использовать триггера или контроль на уровне приложения. У каждого свои плюсы и минусы...
...
Рейтинг: 0 / 0
REFERENCES
    #35240166
sa22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tru55Есть разные способы реализовывать ограничения, в том числе и FOREIGN KEY. Кроме задания constraint в базе можно использовать триггера или контроль на уровне приложения. У каждого свои плюсы и минусы...
собственно всё началось с того, что я в повердизигнере обратил внимание на то, что одну базу он реверсит и на ней есть стрелочки между таблицами а на другой аналогичной базе нету :)
Это первое что привлекло внимание к REFERENCES :)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / REFERENCES
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]