Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 02.03.2017
Сообщений: 16
1

Создание таблицы и связи между таблицами

18.10.2017, 16:46. Показов 1969. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
не пойму как создать ссылку (внешний ключ) на составной первичный ключ другой таблицы



Такой запрос не проходит. Как создать требуемую схему, не изменяя состав ключей?
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
USE MyDB;
CREATE TABLE Pols
( login_ VARCHAR(50),
password_ VARCHAR(50),
role_ VARCHAR(50),
dis_ VARCHAR(50),
CONSTRAINT pk1 PRIMARY KEY(login_,  password_ )
);
 
CREATE TABLE Zakaz
( number_ VARCHAR(50),
date_ DATE,
round_ VARCHAR(50),
customer_ VARCHAR(50),
manager_ VARCHAR(50),
sum_ DECIMAL(15,2),
CONSTRAINT pk2 PRIMARY KEY(number_,date_),
CONSTRAINT fk1 FOREIGN KEY(customer_) REFERENCES Pols(login_, password_));
Миниатюры
Создание таблицы и связи между таблицами  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2017, 16:46
Ответы с готовыми решениями:

Создание связи между таблицами
Доброго дня! Было создано несколько таблиц, пока что они всё еще пустые, данные не вводились. ...

Создание связи между таблицами
Здравствуйте, подскажите пожалуйста, как через sql запрос сделать связь между таблицами. Я знаю,...

Создание связи между таблицами в базе данных
Здравствуйте. Подскажите как создать связь между двумя таблицами,когда в первой таблице внешний...

Создание связи между таблицами с SQL запросом
Подскажите как создать связь между таблица , с помощью языка SQL. В гугле толком ничего не нашёл,...

4
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
18.10.2017, 17:22 2
Цитата Сообщение от Margoigo Посмотреть сообщение
как создать ссылку (внешний ключ) на составной первичный ключ
Если PK имеет несколько полей, то FK должен иметь столько же.
0
0 / 0 / 0
Регистрация: 02.03.2017
Сообщений: 16
18.10.2017, 17:28  [ТС] 3
ну не понимаю, т.е. для связи Заказчик-Пользователь мне надо еще поле создавать?
0
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
19.10.2017, 09:39 4
Цитата Сообщение от Margoigo Посмотреть сообщение
ну не понимаю
У тебя PK - сочетание login - password. Как можно ставить соответствие customer этим двум полям? Либо ты создаешь в таблице Pols поле customer_id и связываешь таблицы по полям customer, либо создаешь в таблице zakaz вместо customer 2 поля и связываешь по ним. Скорее всего ты не понимаешь, что такое FK.
0
51 / 45 / 21
Регистрация: 04.11.2013
Сообщений: 384
25.05.2020, 13:23 5
Margoigo, внешний ключ тоже бывает составным, в нем должно быть столько же полей, сколько в первичном ключе, на который он ссылается, и они должны быть таких же типов.
Но конкретно здесь явная ошибка проектирования базы, здесь первичный ключ должен быть простой - login_ , потому что пользователей с одним логином быть не может, даже если у них разные пароли. И внешний ключ соответственно тоже простой
SQL
1
FOREIGN KEY(customer_) REFERENCES Pols(login_)
0
25.05.2020, 13:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2020, 13:23
Помогаю со студенческими работами здесь

Как создать запрос на создание связи 1:1 между таблицами?
Задание такое, нужно сделать так, чтобы между табл Сотрудник и МатОтветственный была связь 1:1 А...

Связи между таблицами
Объясните пжл на каком-нибудь жизненном примере что означают связи: 1:1, 1:M, M:M Вроде что-то...

Связи между таблицами
Подскажите плз как установить связь например между Родительской Регион / КодРегиона и дочерней...

Связи между таблицами, MS Management Studio
В MS Management Studio создал БД с таблицами: 1) Студент (id_std - поставил первичный ключ, имя,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru