| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > СУБД, общие вопросы > Primary Key & Foreign Key |
| Автор: Berliner 9.3.2006, 12:33 |
| Встал вопрос о работе с базой. Хотелось бы узнать в чем разница между работой с Primary Key и Foreign Key. Primary вроде как ключ уникальный для связи с другими таблицами? А Foreign Key зачем тогда? Пояните пожалуста. |
| Автор: batigoal 9.3.2006, 12:53 |
| Primary Key - уникальное значение в твоей таблице, по которому ты сможешь однозначно идентифицировать запись. Foreign Key - значение, с помощью которого ты сможешь сослаться на запись другой таблицы (это значение не обязано быть уникальным). Добавлено @ 12:53 Часто Foreign Key одной таблицы ссылается на Primary Key другой. |
| Автор: Berliner 9.3.2006, 14:38 |
| Насколько я понял под ForeignKey понимается взаимосвязь между таблицами например у себя Sybase ASA я клацаю по ForeignKey(ht1 например) и две колонки PrimaryKey s_name и ForeignKey s_name(если я че-то не перепутал). Как это понимать - получается ForeignKey єто взаимосвязь? Внутри ForignKey нужно прописывать поля таблиц? |
| Автор: Akina 9.3.2006, 14:49 |
| Внешний ключ - это просто указание на поле, часть поля или комбинацию (частей) нескольких полей, которые дают некое содержимое. Это содержимое используется для связи с другой таблицей, где также из поля или нескольких полей составляется точно того же содержания значение. Связанными являются те записи этих таблиц, у которых эти значения совпадают. Если во внешней таблице получаемое значение уникально (например это просто значение ключевого поля) - образуется связь много-к-одному. Если неуникален - много-ко-многим, и связная выборка дает декартово произведение записей, у которых эти выражения совпадают. Если же в каждой из таблиц это значение уникально - получается связь один-к-одному (обычно используется для разделения таблицы на часто и редко используемые данные об одной записи или для разделения данных записи по правам доступа). |
| Автор: Vit 9.3.2006, 16:15 |
| Пример: Таблица 1 - ставки ID Должность ------------------ 1 Лаборант 2 Секретарь 3 Инженер Таблица 2 - Сотрудники ID Ставка ФИО 1 1 Иванов 2 1 Петров 3 2 Сидоров 4 3 Федоров 4 3 Смирнов Поля ID однозначно определяют запись - и по ним надо ставить первичный ключ А вот поле ставка реально соединяет 2 таблицы, и Foreign Key Надо ставить на ставки.ID+Сотрудники.Ставка |
| Автор: Berliner 13.3.2006, 18:22 | ||||
| Спасиб за пример. Подскажите пожалуста а что такое ссылки(References) и какое основное отличие ссылки от внешнего ключа? Создавать таблицы примерно нужно так
|
| Автор: chief39 13.3.2006, 18:28 | ||
| Это одно и то же
Ссылается воркерс на зарплату. Причём свои внешним ключом на праймари ки зарплаты. Добавлено @ 18:29 Ты почему Дэйта и прочих дядек не читаешь, а? |
| Автор: Berliner 13.3.2006, 18:39 |
| ок спасиб |