|
|
|
REFERENCES
|
|||
|---|---|---|---|
|
#18+
Вот сижу читаю книжку о проектирование реляционных БД, но вот эту фразу что-то никак не осилю Джен Л. ХаррингтонИмена столбцов внешних ключей указываются после ключевых слов FOREIGN КЕУ. В конструкции REFERENCES содержится имя таблицы того первичноrо ключа, на который производится ссылка. Если столбцы первичноrо ключа заданы в конструкции PRIMARY КЕУ своей таблицы, нет необходимости перечислять их имена. Если же имена столбцов не являются частью конструкции PRIMARY КЕУ, необходимо перечислить столбцы первичноrо ключа в конструкции REFERENCES. Не могу понять назначение REFERENCES из данного объяснения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 13:23 |
|
||
|
REFERENCES
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 13:43 |
|
||
|
REFERENCES
|
|||
|---|---|---|---|
|
#18+
спасибо за пример, пока вижу только что конструкция REFERENCES отличается от конструкции FOREIGN КЕУ лишь указанием имени таблицы содержащей первичный ключ. Смысла по-прежнему не улавливаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 13:52 |
|
||
|
REFERENCES
|
|||
|---|---|---|---|
|
#18+
sa22спасибо за пример, пока вижу только что конструкция REFERENCES отличается от конструкции FOREIGN КЕУ лишь указанием имени таблицы содержащей первичный ключ. Смысла по-прежнему не улавливаю В данном случае столбец, указанный после FOREIGN КЕY - это столбец текущей таблицы, именно ДЛЯ НЕГО будет проверяться ограничение. После REFERENCES указываются данные родительской таблицы - ее имя и столбцы, ПО НИМ будет проверяться ограничение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 13:55 |
|
||
|
REFERENCES
|
|||
|---|---|---|---|
|
#18+
Ну, назвать References "конструкцией", имхо, несколько громко - это часть объявления FOREIGN KEY и самостоятельного применения не имеет: Код: plaintext 1. Все еще непонятно?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 14:10 |
|
||
|
REFERENCES
|
|||
|---|---|---|---|
|
#18+
ок, спасибо большое, для начала думаю понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 14:20 |
|
||
|
REFERENCES
|
|||
|---|---|---|---|
|
#18+
sa22Не могу понять назначение REFERENCES из данного объяснения Чтобы задать связь, нужно задать два ее конца: что ссылается и куда ссылается. Что ссылается - задается полями, перечисленными после foreign key, а также (неявно) таблицей, которой принадлежит этот foreign key. Куда ссылается - задается конструкцией references. Перечисление полей в конструкции references нужно потому, что: а) в таблице может быть несколько ключей б) в ключе может быть несколько полей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 14:35 |
|
||
|
REFERENCES
|
|||
|---|---|---|---|
|
#18+
softwarer sa22Не могу понять назначение REFERENCES из данного объяснения Чтобы задать связь, нужно задать два ее конца: что ссылается и куда ссылается. Что ссылается - задается полями, перечисленными после foreign key, а также (неявно) таблицей, которой принадлежит этот foreign key. Куда ссылается - задается конструкцией references. Перечисление полей в конструкции references нужно потому, что: а) в таблице может быть несколько ключей б) в ключе может быть несколько полей 1. Это нормально если в таблице несколько ключей? 2. Если не а) и не б) , то в REFERENCES нет необходимости? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 14:50 |
|
||
|
REFERENCES
|
|||
|---|---|---|---|
|
#18+
sa221. Это нормально если в таблице несколько ключей? Абсолютно. Сродни вопросу "это нормально, что в семье N детей?" sa222. Если не а) и не б) , то в REFERENCES нет необходимости? Без references обойтись трудно в любом случае. По идее, если в таблице один ключ из одного поля, то указывать его в references необязательно - и так все однозначно. Поддерживается ли такой синтаксис и где-когда-как - честно говоря не знаю, в данном случае предпочитаю писать единообразно даже если такая возможность и существует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 14:56 |
|
||
|
REFERENCES
|
|||
|---|---|---|---|
|
#18+
sa221. Это нормально если в таблице несколько ключей? Только не надо забывать про нормальные формы. То есть, в конкретном случае может быть и не нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 14:59 |
|
||
|
REFERENCES
|
|||
|---|---|---|---|
|
#18+
sa222. Если не а) и не б) , то в REFERENCES нет необходимости?Имя таблицы, на которую идет ссылка, пишется ПОСЛЕ ключевого слова References, так что без него обойтись не получится. Еще раз повторяю, это не самостоятельная "конструкция", а часть объявления FOREIGN KEY. Причем часть обязательная. Судя по всему, вас ввела в заблуждение неудачная формулировка в процитированной вами книге. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 15:02 |
|
||
|
REFERENCES
|
|||
|---|---|---|---|
|
#18+
понял, что REFERENCES это часть внешних ключей. такой по ходу вопрос, сейчас смотрю одну базу, два десятка таблиц, первичные ключи указаны только в половине таблиц, внешних ключей нигде нет. Они что, не всегда нужны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 15:33 |
|
||
|
REFERENCES
|
|||
|---|---|---|---|
|
#18+
sa22понял, что REFERENCES это часть внешних ключей. такой по ходу вопрос, сейчас смотрю одну базу, два десятка таблиц, первичные ключи указаны только в половине таблиц, внешних ключей нигде нет. Они что, не всегда нужны?Странный вопрос. Это вы про PK или FK? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 15:39 |
|
||
|
REFERENCES
|
|||
|---|---|---|---|
|
#18+
Есть разные способы реализовывать ограничения, в том числе и FOREIGN KEY. Кроме задания constraint в базе можно использовать триггера или контроль на уровне приложения. У каждого свои плюсы и минусы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 15:43 |
|
||
|
REFERENCES
|
|||
|---|---|---|---|
|
#18+
tru55Есть разные способы реализовывать ограничения, в том числе и FOREIGN KEY. Кроме задания constraint в базе можно использовать триггера или контроль на уровне приложения. У каждого свои плюсы и минусы... собственно всё началось с того, что я в повердизигнере обратил внимание на то, что одну базу он реверсит и на ней есть стрелочки между таблицами а на другой аналогичной базе нету :) Это первое что привлекло внимание к REFERENCES :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2008, 15:49 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35240139&tid=1543938]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
53ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 346ms |

| 0 / 0 |
