![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Berliner |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 803 Регистрация: 18.5.2005 Репутация: нет Всего: 2 |
Встал вопрос о работе с базой. Хотелось бы узнать в чем разница между
работой с Primary Key и Foreign Key. Primary вроде как ключ уникальный для связи с другими таблицами? А Foreign Key зачем тогда? Пояните пожалуста. Это сообщение отредактировал(а) Berliner - 9.3.2006, 12:34 |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 1 Всего: 151 |
Primary Key - уникальное значение в твоей таблице, по которому ты сможешь однозначно идентифицировать запись.
Foreign Key - значение, с помощью которого ты сможешь сослаться на запись другой таблицы (это значение не обязано быть уникальным). Добавлено @ 12:53 Часто Foreign Key одной таблицы ссылается на Primary Key другой. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Berliner |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 803 Регистрация: 18.5.2005 Репутация: нет Всего: 2 |
Насколько я понял под ForeignKey понимается взаимосвязь между таблицами например у себя Sybase ASA я клацаю по ForeignKey(ht1 например) и две колонки PrimaryKey s_name и ForeignKey s_name(если я че-то не перепутал). Как это понимать - получается ForeignKey єто взаимосвязь? Внутри ForignKey нужно прописывать поля таблиц?
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Внешний ключ - это просто указание на поле, часть поля или комбинацию (частей) нескольких полей, которые дают некое содержимое. Это содержимое используется для связи с другой таблицей, где также из поля или нескольких полей составляется точно того же содержания значение. Связанными являются те записи этих таблиц, у которых эти значения совпадают.
Если во внешней таблице получаемое значение уникально (например это просто значение ключевого поля) - образуется связь много-к-одному. Если неуникален - много-ко-многим, и связная выборка дает декартово произведение записей, у которых эти выражения совпадают. Если же в каждой из таблиц это значение уникально - получается связь один-к-одному (обычно используется для разделения таблицы на часто и редко используемые данные об одной записи или для разделения данных записи по правам доступа). -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Пример:
Таблица 1 - ставки ID Должность ------------------ 1 Лаборант 2 Секретарь 3 Инженер Таблица 2 - Сотрудники ID Ставка ФИО 1 1 Иванов 2 1 Петров 3 2 Сидоров 4 3 Федоров 4 3 Смирнов Поля ID однозначно определяют запись - и по ним надо ставить первичный ключ А вот поле ставка реально соединяет 2 таблицы, и Foreign Key Надо ставить на ставки.ID+Сотрудники.Ставка -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Berliner |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 803 Регистрация: 18.5.2005 Репутация: нет Всего: 2 |
Спасиб за пример. Подскажите пожалуста а что такое ссылки(References)
и какое основное отличие ссылки от внешнего ключа? Создавать таблицы примерно нужно так
|
||||
|
|||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 8 Всего: 77 |
Это одно и то же ![]()
Ссылается воркерс на зарплату. Причём свои внешним ключом на праймари ки зарплаты. Добавлено @ 18:29 Ты почему Дэйта и прочих дядек не читаешь, а? ![]() -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
Berliner |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 803 Регистрация: 18.5.2005 Репутация: нет Всего: 2 |
ок спасиб
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Общие вопросы по базам данных" | |
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |